referencesにforeign_keyを指定すると外部キー制約が作れるが、フィールド名と異なっている場合は以下のように書く。
class CreateMessages < ActiveRecord::Migration
def change
create_table :messages do |t|
t.references :sender
end
add_foreign_key :messages, :users, column: :sender_id
end
end
これで実用には困らないが、何とかreferencesの一行にうまく書きたい。いろいろ調べたところ foreign_keyに {to_table: :users}
というのを与えればできることがわかった。
class CreateMessages < ActiveRecord::Migration
def change
create_table :messages do |t|
t.references :sender, foreign_key: {to_table: :users}
end
end
end