ruby-on-rails – ActiveRecord关系中的构建和创建方法有什么区别?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – ActiveRecord关系中的构建和创建方法有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用户可以有0或1个配置文件.在我的控制器中,如果给出了一些值,我想保存配置文件,如下所示:
# PUT /users/1
def update
  @user = User.find(params[:id])

  if @user.update_attributes(params[:user])
    if params[:profile][:available] == 1 #available is a checkBox that stores a simple flag in the database.
      @user.create_profile(params[:profile])
    end
  else 
    #some warnings and errors
  end
end

我想知道的部分是create_profile,魔术create_somerelationname.这与魔术build_somerelationname相比如何?什么时候应该用哪个?

解决方法

构建和创建之间的区别是,创建还可以保存创建的对象,因为生成只返回新创建的对象(没有保存).

文档有些隐藏在here.

因此,根据您是否对返回的对象感到满意,您需要创建(因为您不会再更改它)分别构建,因为您要在再次保存之前更新它(这将保存您的保存操作)

原文链接:https://www.f2er.com/ruby/271970.html

猜你在找的Ruby相关文章