我有一个用户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
感谢任何帮助,谢谢。
答案 0 :(得分:1)
所以你不应该做这个部分:
@user.build_company(params[:user][:company_attributes])
该部分隐含在accepts_nested_attributes
中,只要您permit/require
设置正确(您这样做),它就应该为您执行此操作。