Você pode fazer desta forma:
create_table :courses do |t|
t.string :name
t.references :transferrable_as
t.references :same_as
t.timestamps
end
ou usando t.belongs_to
como um alias parat.references
Você não pode adicionar foreign_key: true
a essas duas linhas de referência. Se você deseja marcá-los como chaves estrangeiras no nível do banco de dados, você precisa fazer uma migração com isto:
add_foreign_key :courses, :courses, column: :transferrable_as_id
add_foreign_key :courses, :courses, column: :same_as_id
Atualizar
No Rails 5.1 e superior você pode adicionar a chave estrangeira na migração no create_table
bloco assim:
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