2010-03-03 15 views
12

Bir has_one ilişkisinde accepts_nested_attributes_for ile sorun yaşıyorum.accepts_nested_attributes_for has_one ilişkisi için propertly çalışmaz

Modeller: Satınalma ve Satış. denetleyici olarak

class Purchase < ActiveRecord::Base 
    has_one :sale, :dependent => :destroy 
    accepts_nested_attributes_for :sale 
end 

class Sale < ActiveRecord::Base 
    belongs_to :purchase 
end 

/yeni eylem:

@purchase = Purchase.new(
    :club_id => @club.id, 
    :subcategory_id => subcategory.id 
) 

görünümünde (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 

SORUN: Bu aslında benim görünümünde satılık herhangi bir giriş kutularını kılmaz . Satın alma alanları iyi sonuç verir, ancak satış alanları görünmez. Ben kontrolöre bu satırı eklerseniz

: böylece, bunun yerine has_one ait Has_many için dernek türünü değiştirmek eğer

undefined method `build' for nil:NilClass 

şeyler daha garip yapmak için:

@purchase.sale.build 

bu hatayı alıyorum oluşturma:

class Purchase < ActiveRecord::Base 
    has_many :sales, :dependent => :destroy 
    accepts_nested_attributes_for :sales 
end 

Her şey iyi çalışmaya başlar - satış alanları görünmeye başlar Benim görüşüme göre, @ purchase.sales.build bir hata döndürmez, vb. Elbette, bu bana yardımcı olmuyor, çünkü has_many olması gerekiyor, çünkü has_one değil.

Bu durumda herhangi bir ışık tutabilir mi?

cevap

İlgili konular