इस पर वर्तमान में स्वीकृत उत्तर वास्तव में सटीक नहीं है क्योंकि यह डेटाबेस विदेशी कुंजी नहीं जोड़ता है। यह केवल पूर्णांक कॉलम जोड़ रहा है।
रेल 4.2.x . में , वर्तमान दृष्टिकोण है:
http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys
एक माइग्रेशन बनाएं:
rails generate migration migration_name
मौजूदा कॉलम . के लिए , माइग्रेशन में विदेशी कुंजियाँ इस तरह जोड़ें:
class MigrationName < ActiveRecord::Migration
def change
add_foreign_key :business_hours, :businesses
add_foreign_key :businesses, :users
end
end
रेल 4.x . के लिए या यदि आप एक नया कॉलम जोड़ रहे हैं और चाहते हैं कि यह एक विदेशी कुंजी हो, आप ऐसा कर सकते हैं, जहां आप शायद इंडेक्स को सत्य के रूप में निर्दिष्ट करना चाहते हैं, लेकिन यह विदेशी कुंजी की आवश्यकता का हिस्सा नहीं है:
http://edgeguides.rubyonrails.org/active_record_migrations.html#creating-a-migration
class MigrationName < ActiveRecord::Migration
def change
add_reference :business_hours, :business, index: true, foreign_key: true
add_reference :businesses, :user, index: true, foreign_key: true
end
end