2010-03-03 11 views
12

के लिए गुणकारी रूप से काम नहीं करता है I have_one संबंध में accepts_nested_attributes_for के साथ समस्या हो रही है।accepts_nested_attributes_for हैसोन रिलेशनशिप

मॉडल: खरीद और बिक्री।

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 

बातें weirder अगर मैं has_one के बजाय has_many करने के लिए संघ प्रकार बदलने के बनाने के लिए, है, इस प्रकार बनाना:

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

सब कुछ ठीक काम करना शुरू कर देता है - बिक्री के क्षेत्र दिखने लगते हैं मेरे विचार में, @ buy.sales.build एक त्रुटि नहीं देता है, और इसी तरह। बेशक, यह वास्तव में मेरी मदद नहीं करता है, क्योंकि यह है_मैनी होना चाहिए, है_ऑन नहीं।

क्या कोई इस स्थिति पर कोई प्रकाश डाल सकता है?

उत्तर

संबंधित मुद्दे