2017-01-18 11 views
0

私は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 

すべてのヘルプは高く評価され、感謝のように見えます。 (あなたはどの部分がaccepts_nested_attributesに暗示されて

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

、それは限り、あなたはあなたpermit/requireが正しくセットアップされているとして、あなたのためにそれを行う必要があります。

+1

こんにちは。まず、この部分を行う必要はありません: '@ user.build_company ...' 'accepts_nested_attributes'はあなたのためにそれを行うべきです。 –

+0

第2に:あなたのログを(コンソール/端末か 'logs/development.log'から)見ることができ、' ForbiddenAttributesError'の完全なメッセージを伝えることができますか?どの属性が正確に拒否されていますか?実際には、フォームを送信するときにログファイルにアクセスして監視し、送信後に発生するすべての出力行をコピーできますか?あなたの質問を編集して、私たちのためにそれを貼り付けてください。それは、あなたのために間違っていることを絞り込むのに役立ちます:) –

+1

ありがとう、Taryn。 @ user.build_companyを削除するのと同じくらい簡単でした。 – user3593826

答えて

1

だから、この部分を行う必要はありません)。