0

私はレールにまったく慣れていないので、これがばかげた質問である場合はご容赦ください。間違って開始したかどうかを判断するのに十分な答えをまとめることができません。ここに行きます。

  1. 私は自分のCompanyモデルに関連するすべてをrails g scaffold Company name:string description:text location_city:string location_state:string accounttype:references

  2. 私はAccounttypeモデルに関連するすべてを作成しましたrails g scaffold Accounttype id:primary_key name:string price:decimal

  3. したがって、私のCompanyモデルには次の許容値が含まれています。

    belongs_to :accounttype

    attr_accessible :description, :location_city, :location_state, :name

  4. 足場で生成された会社の編集フォームに移動し、それらのフィールドにデータを入力すると、エラーがスローされます。Can't mass-assign protected attributes: accounttype

  5. に追加:accounttypeすると、次のリクエスト パラメータattr_accessibleがスローされます。Accounttype(#70175254242100) expected, got String(#70175215042700)

    {"utf8"=>"✓", "authenticity_token"=>"oXm3cqo0jemKYFB5OGqn5ixXLSB+bH19/1RhPUu0ZHU=", "company"=>{"name"=>"Acme Corp", "description"=>"a", "location_city"=>"san diego", "location_state"=>"california", "accounttype"=>"1"}, "commit"=>"Create Company"}

:referencesそれで、私が2つのモデルをリンクするために使用したのは私の問題ですか?それを使用しても問題ない場合、作成/更新を機能させるにはどうすればよいですか?

4

2 に答える 2

1

ラーニングレールの使用おめでとうございます!モデルに属性を直接割り当てるには、モデルでaccepts_nested_attributes_forを使用する必要があります。そのようです:CompanyAccounttype

belongs_to :accounttype

accepts_nested_attributes_for :accounttype

attr_accessible :description, :location_city, :location_state, :name, :accounttypes_attributes

attr_accessibleを使用しているため、追加する必要があることに注意してください。accounttypes_attributes また、に変更Accounttypeすることをお勧めしますAccountType

出典:Docs Railscast

于 2012-12-19T07:05:12.957 に答える
0

リソースのネストと、ネストされたリソースの使用について調べる必要があります

accept_attributes_for :accounttype

http://masonoise.wordpress.com/2010/07/23/rails-and-forms-using-accepts_nested_attributes_for/

于 2012-12-19T07:01:39.030 に答える