建立铁路模型的关联

时间:2017-01-18 20:58:57

标签: ruby-on-rails ruby-on-rails-4

我有一个用户has_one:company。我需要通过强大的参数来构建公司的属性,但我遇到了ActiveModel::ForbiddenAttributesError。我的代码如下所示:

    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

我的user.rb

class User < ActiveRecord::Base
 has_one :company
 accepts_nested_attributes_for :company
end

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

所以你不应该做这个部分:

 @user.build_company(params[:user][:company_attributes])

该部分隐含在accepts_nested_attributes中,只要您permit/require设置正确(您这样做),它就应该为您执行此操作。

相关问题