自分自身に対して多対多を持つモデルのDBへ外部キー制約を追加する方法
以下のように自分自身に対して多対多の関係を持つモデルを使っています。
models/user.rb
has_many :friendships
has_many :friends, through: :friendships
models/friendship.rb
belongs_to :user
belongs_to :friend, class_name: "User"
このFriendship
を作成する時にcreate_table
でforeign_key: true
の制約をつけると当然ですがエラーになってしまいます。
create_table :friendships do |t|
t.references :user, foreign_key: true
t.references :friend
end
ですので、以上のように制限無しで作成してしまっているのですが
このfriendships
のfriend_id
カラムに外部キー制約を追加するにはどのようにすればよいのでしょうか?