-1

深くネストされた形式で fields_for オブジェクトの関連付けのメソッドにアクセスするのが困難です。私が間違っているところを理解するのを手伝ってもらえますか?

機会モデル:

class Opportunity < ActiveRecord::Base
  has_many :seedlings
  accepts_nested_attributes_for :seedlings
end

苗モデル:

class Seedling < ActiveRecord::Base
  belongs_to :opportunity
  belongs_to :potential_building
  accepts_nested_attributes_for :potential_building
end

潜在的な建物モデル:

class PotentialBuilding < ActiveRecord::Base
  has_many :seedlings
end

hidden_​​field の横に potential_building の名前を書きたいと思っていましたが、明らかに何かを理解していません。次のように、潜在的な建物 ID をページに書き込むことができます (haml):

...
= opportunity_form.fields_for :seedlings do |seedling_form|
  = seedling_form.hidden_field :potential_building_id
  = seedling_form.object.potential_building_id # => 73
....

アソシエーションのメソッドへのアクセスがこれほど簡単になることを望んでいましたが、そうでない理由がわかりません。

...
= opportunity_form.fields_for :seedlings do |seedling_form|
  = seedling_form.hidden_field :potential_building_id
  = seedling_form.object.potential_building.name # => undefined method `name' for nil:NilClass
...

私が理解するのを手伝ってもらえますか?ありがとうございました。

4

1 に答える 1

0
class Opportunity < ActiveRecord::Base
  has_many :seedlings
  accepts_nested_attributes_for :seedlings
end

http://currentricity.wordpress.com/2011/09/04/the-definitive-guide-to-accepts_nested_attributes_for-a-model-in-rails-3/

于 2012-12-16T00:01:57.717 に答える