Bunu şu şekilde yapabilirsiniz:
create_table :courses do |t|
t.string :name
t.references :transferrable_as
t.references :same_as
t.timestamps
end
veya t.belongs_to
takma ad olarak kullanmakt.references
Bu foreign_key: true
iki referans satırına ekleme yapamazsınız . Bunları veritabanı düzeyinde yabancı anahtar olarak işaretlemek istiyorsanız, bununla bir geçiş yapmanız gerekir:
add_foreign_key :courses, :courses, column: :transferrable_as_id
add_foreign_key :courses, :courses, column: :same_as_id
Güncelleme
Rails 5.1 ve üzeri sürümlerde yabancı anahtarı create_table
bloktaki geçişe şu şekilde ekleyebilirsiniz :
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