Ruby on rails 构建rails模型的关联
我有一个用户有一个:company。我需要通过强参数来构建公司的属性,但是我遇到了一个Ruby on rails 构建rails模型的关联,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个用户有一个:company。我需要通过强参数来构建公司的属性,但是我遇到了一个ActiveModel::ForbiddenAttributeError。我的代码如下所示: def create @user = User.new(permitted_user_params) @user.build_company(params[:user][:company_attributes]) end def permitted_user_params
ActiveModel::ForbiddenAttributeError
。我的代码如下所示:
def create
@user = User.new(permitted_user_params)
@user.build_company(params[:user][:company_attributes])
end
def permitted_user_params
params.require(:user).permit(:email, :first_name, :last_name,
company_attributes: [:name, :bio])
end
我的company.rb看起来像
class Company < ActiveRecord::Base
belongs_to :user
end
class公司
我的用户.rb
class User < ActiveRecord::Base
has_one :company
accepts_nested_attributes_for :company
end
class用户
非常感谢您的帮助。因此您不需要执行此部分:
@user.build_company(params[:user][:company_attributes])
这一部分隐含在
接受嵌套的属性中,只要您正确设置了允许/要求(您可以这样做)。您好,欢迎使用堆栈溢出。首先,你不需要做这部分:@user.build\u company…
这个接受嵌套的属性应该为你做这件事。其次:你能看看你的日志(从控制台/终端或日志/development.log
)并给我们完整的DenaBannotributeError消息吗?哪些属性正被拒绝?事实上,你能在提交表单时查看日志文件,并复制点击提交后出现的每一行输出吗?然后编辑你的问题并粘贴到我们的页面上——这将帮助我们缩小你到底出了什么问题:)谢谢,塔林。这就像删除@user.build_company.hehe一样简单——有时是简单的事情。我将添加它作为答案,以便您可以接受:)