自分自身に対して多対多を持つモデルの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カラムに外部キー制約を追加するにはどのようにすればよいのでしょうか?