Ruby on rails 构建rails模型的关联

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

我有一个用户有一个:company。我需要通过强参数来构建公司的属性,但是我遇到了一个
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一样简单——有时是简单的事情。我将添加它作为答案,以便您可以接受:)