Ви можете це зробити так:
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