5

के साथ संबंध है I have_many को लागू करने की कोशिश कर रहा है और विदेशी कुंजी के साथ रेल पर रिश्ते के संबंध में है, लेकिन मुझे इसे सही तरीके से कार्यान्वित करने की कोशिश करने में परेशानी का सामना करना पड़ रहा है, किसी भी मदद की सराहना की जाएगी। मैं इसे एक गाइड के रूप में भी उपयोग कर रहा हूं: http://guides.rubyonrails.org/association_basics.htmlरेल के पास _many और विदेशी कुंजी त्रुटि

दो मॉडल विषय और सबक हैं। एक विषय में कई सबक हैं और एक सबक एक सबक से संबंधित है। विदेशी कुंजी subject_code है।

निम्नलिखित प्रासंगिक कोड हैं।

विषय मॉडल

class Subject < ActiveRecord::Base 
        :subject_code, 
        :subject_name 
        :lessons_attributes 

    has_many :lessons, 
      :foreign_key => "subject_code" 

    accepts_nested_attributes_for :lessons, 
           :allow_destroy => true 
end 

सबक मॉडल।

class Lesson < ActiveRecord::Base 
    attr_accessible :lesson_id, 
        :lesson_type, 
        :subject_code 

    belongs_to :subject, 
      :class_name=>"Subject", 
      :foreign_key=>"subject_code" 

end 

मुझे यकीन नहीं है कि मैं इस कार्यान्वयन के साथ गलत कहां गया क्योंकि मैं किसी विषय से सबक पुनर्प्राप्त नहीं कर सकता। पाठ के लिए मेरी डेटाबेस तालिका में पहले से topic_code के लिए एक कॉलम भी है।

चारों ओर खिलवाड़ करते हैं, मैंने पाया कि मेरा विषय मॉडल के लिए मैं निम्नलिखित परिवर्तन

has_many :lessons, 
      :foreign_key => "lesson_id" 

मैं शिक्षा के बारे में लेकिन lesson_id subject_id से बंधा साथ जानकारी पुनः प्राप्त करने में सक्षम था। हालांकि, विदेशी कुंजी को विषयकोड में बदल दिया गया, यह काम नहीं किया और मैं सिर्फ इसलिए उलझन में हूं।

किसी भी मदद की सराहना की जाएगी। foreign_key => "subject_code" `` Subject` मॉडल में:

+0

में 'हटा दें। – VenkatK

+0

मुझे यह त्रुटि मिलती है जब मैं ऐसा करता हूं। SQLite3 :: SQLException: ऐसा कोई कॉलम नहीं: text.subject_id: "सबक" चुनें। * "सबक" से "पाठ"। "Subject_id" = 8 –

उत्तर

4

विषय मॉडल

has_many :lessons, :primary_key => "subject_code" 
+0

धन्यवाद। हालांकि, मुझे यह त्रुटि मिल रही है। SQLite3 :: SQLException: ऐसा कोई कॉलम नहीं: text.subject_id: "सबक" चुनें। * "सबक" से "पाठ"। "Subject_id" = 'CM101' ऐसा करने के बाद। –

+0

ऐसा लगता है कि विषय_आईडी का उपयोग करने के रेलवे सम्मेलन के बाद यह आसान हो सकता है –