Anda bisa melakukannya dengan cara ini:
create_table :courses do |t|
t.string :name
t.references :transferrable_as
t.references :same_as
t.timestamps
end
atau digunakan t.belongs_to
sebagai alias untukt.references
Anda tidak dapat menambahkan foreign_key: true
ke dua baris referensi tersebut. Jika Anda ingin menandainya sebagai kunci asing di tingkat database, Anda perlu melakukan migrasi dengan ini:
add_foreign_key :courses, :courses, column: :transferrable_as_id
add_foreign_key :courses, :courses, column: :same_as_id
Memperbarui
Di Rails 5.1 dan di atasnya, Anda dapat menambahkan kunci asing dalam migrasi di create_table
blok seperti ini:
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