加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:48:25 所属栏目:百科 来源:网络整理
导读:我有一个用户可以有0或1个配置文件.在我的控制器中,如果给出了一些值,我想保存配置文件,如下所示: # PUT /users/1def update @user = User.find(params[:id]) if @user.update_attributes(params[:user]) if params[:profile][:available] == 1 #available
我有一个用户可以有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.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读