12
我在has_one關係中遇到accept_nested_attributes_for問題。accep_nested_attributes_for對has_one關係不起作用
該機型:購買和銷售。
class Purchase < ActiveRecord::Base
has_one :sale, :dependent => :destroy
accepts_nested_attributes_for :sale
end
class Sale < ActiveRecord::Base
belongs_to :purchase
end
在控制器/新動作:
@purchase = Purchase.new(
:club_id => @club.id,
:subcategory_id => subcategory.id
)
在視圖(HAML):
- form_for(@purchase) do |f|
# some fields for purchase
- f.fields_for :sale do |s|
= s.text_field :amount, :size => 6
# and so on
問題:這實際上並不提供任何輸入框在我看來售。採購字段呈現良好,但銷售字段不顯示。
如果我這一行添加到控制器:
@purchase.sale.build
我得到這個錯誤:
undefined method `build' for nil:NilClass
爲了使事情變得怪異,如果我更改關聯類型HAS_MANY而不是HAS_ONE,從而創建:
class Purchase < ActiveRecord::Base
has_many :sales, :dependent => :destroy
accepts_nested_attributes_for :sales
end
一切開始工作就好 - 銷售字段開始出現在我看來,@ purchase.sales.build不會返回錯誤,依此類推。當然,這並不能真正幫助我,因爲它應該是has_many,而不是has_one。
任何人都可以對這種情況有所瞭解嗎?
非常感謝您! – adriandz 2010-03-03 21:16:15