gpt4 book ai didi

ruby-on-rails - ActiveRecord 关系中的 build 和 create 方法有什么区别?

转载 作者:行者123 更新时间:2023-12-04 00:05:31 26 4
gpt4 key购买 nike

我有一个可以拥有 0 或 1 个配置文件的用户。在我的 Controller 中,如果给出了某些值,我想保存配置文件,如下所示:

# 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 ?我什么时候应该使用哪个?

最佳答案

build的区别和 create是 create 也保存创建的对象,因为 build 只返回新创建的对象(尚未保存)。

文档有点隐藏 here .

因此,取决于您对返回的对象是否满意,您需要 create (因为你不会再改了)分别 build因为您想在再次保存之前更新它(这将为您节省保存操作)

关于ruby-on-rails - ActiveRecord 关系中的 build 和 create 方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com