gpt4 book ai didi

ruby-on-rails - build_association 工作?

转载 作者:行者123 更新时间:2023-12-04 06:12:52 25 4
gpt4 key购买 nike

我有两个具有一对一关联的模型。

class User < ActiveRecord::Base
has_one :setting
end

class Setting < ActiveRecord::Base
belongs_to :user
end

每个模型都有很多字段,用户被非 Rails 外部服务器广泛使用,这就是我分开表格的原因。

我正在尝试使用 build_association,但我得到的只是 nil:NilClass 的未定义方法 `build_setting'。我想这样做是因为我想要一个包含来自两个模型的字段的单个表单来设置新用户。

在我的用户 Controller 新方法中,我尝试这样做:
def new
@user = User.new
@setting = @user.setting.build_setting

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user }
end
end

哪个抛出:
NoMethodError in UsersController#new
undefined method `build_setting' for nil:NilClass

为什么?根据 api 文档,这是这样做的方法。

这样做似乎有效,但它不是正确的方法(或者是吗?):
def new
@user = User.new
@setting = Setting.new
@user.setting=@setting

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user }
end
end

最佳答案

在您的用户模型中添加

class User < ActiveRecord::Base
has_one :setting
validates_associated :setting
end

然后使用
@setting = @user.build_setting

关于ruby-on-rails - build_association 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7569107/

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