Сделать это можно так:
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
Обновить
В Rails 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