3つのモデルがあります:
class Offer < ActiveRecord::Base
has_many :offer_items
end
class OfferItem < ActiveRecord::Base
belongs_to :offer
belongs_to :partner_product
accepts_nested_attributes_for :partner_product
end
class PartnerProduct < ActiveRecord::Base
has_many :offer_items
accepts_nested_attributes_for :offer_items
end
オファーが編集されるフォームには、offer_itemを編集するためのfields_forがあります
<% f.fields_for :offer_items do |offer_item_form| -%>
<div class='offer_item'>
<%= render :partial => 'offer_item_fields', :locals => {:offer_item_form => offer_item_form}%>
</div>
<% end -%>
パーシャルのコードチャンク:
<%= offer_item_form.object.partner_product.name%>
エラーをスローします
nil:NilClassの未定義のメソッド `name'
抽出されたソース(行#29周辺):
<%= offer_item_form.object.partner_product.name%>
でも名前を聞かないとこんな感じ
<%= offer_item_form.object.partner_product%>
<%= debug( offer_item_form.object.partner_product)%>
ブラウザに入る:
#<PartnerProduct:0x007fa8785ff938>
--- !ruby/ActiveRecord:PartnerProduct
attributes:
id: 1
partner_id: 586
name: a
stock_volume: 0
source_price: 0
created_at: 2012-05-31 14:05:47 Z
updated_at: 2012-05-31 14:05:47 Z
なぜ「name」属性にアクセスできず、partner_productをnilに変更できないのか疑問に思っているだけではありませんが、実際に表示する必要があります。どんな助けでも大歓迎です!ありがとう