आप इसे इस तरह से कर सकते हैं:
create_table :courses do |t|
t.string :name
t.references :transferrable_as
t.references :same_as
t.timestamps
end
या के t.belongs_to
लिए एक उपनाम के रूप में उपयोग करt.references
आप foreign_key: true
उन दो संदर्भ लाइनों में जोड़ नहीं सकते । यदि आप उन्हें डेटाबेस स्तर पर विदेशी कुंजी के रूप में चिह्नित करना चाहते हैं, तो आपको इसके साथ माइग्रेशन की आवश्यकता होगी:
add_foreign_key :courses, :courses, column: :transferrable_as_id
add_foreign_key :courses, :courses, column: :same_as_id
अपडेट करें
5.1 और इसके बाद के संस्करण में आप create_table
ब्लॉक में माइग्रेशन में विदेशी कुंजी को इस तरह जोड़ सकते हैं :
create_table :courses do |t|
t.string :name
t.references :transferrable_as, foreign_key: { to_table: 'courses' }
t.references :same_as, foreign_key: { to_table: 'courses' }
t.timestamps
end