2012-04-20 17 views
3

私は2つのモデルを持っています。メンバーとの調査はレール3ネストされた属性を正しく設定する方法

member.rb私は調査が私が

ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: surveys

を受ける属性を持つメンバーを作成しようとするたびに、しかし

Class Survey < ActiveRecord::base 
    belongs_to :member 
end 

を次のように

Class Member < ActiveRecord::Base 
    has_one :survey, :dependent => :destroy 
    accepts_nested_attributes_for :survey 

    attr_accessible :fname,:lname, :address, :city, :state, :zip, :email, :phone, :phone_alt, :e_contact, :e_contact_phone, :physician, :physician_phone, :chiropractor, :chiropractor_phone, :password, :password_confirmation, :remember_me, :survey_attributes 

end 

survey.rbを次のように

これはコンソールでテストしています。アクセス呼び出しが読むべきhas_one協会と

+0

実際のフォームを投稿しようとしましたか? –

+0

多分それはattr_accessibleのsurveys_attributesですか? – tmaximini

+0

はい、実際のフォームは同じ出力を生成し、surveys_attributesを削除しても出力は変更されません。 – Kosmonaut

答えて

2

attr_accessible :survey_attributes 

あなたがそうのように、入れ子にすることの必要性を投稿しているのparams:フォームで

params = { :member => { :name => 'Jack', :survey_attributes => { :attribute => 'value' } } } 

は必ず」ことを確認しますネストされた関係を正しく構築する、つまり。

このような設定をしているとうまくいくはずです。これがエラーをキャッチしていない場合は、コンソールで何をしようとしているのかのログを表示して、動作していません。

詳細については、Rails APIの#accepts_nested_attributes_forを参照してください。

+0

私のフォームがアンケート(アンケート)用に間違った属性を生成していました。フォームをsurvey_attributesに更新し、すべて正常です。ありがとう! – Kosmonaut

関連する問題