私のアプリケーションでは、ユーザーは多くのユーザーをフォローでき、多くのユーザーがフォローできます。has_and_belongs_to_many 関連付けを使用してこれをモデル化しようとしました
class User < ActiveRecord::Base
has_and_belongs_to_many :followers, class_name: "User", foreign_key: "followee_id", join_table: "followees_followers"
has_and_belongs_to_many :followees, class_name: "User", foreign_key: "follower_id", join_table: "followees_followers"
end
また、次のように結合テーブルの移行を作成しました。
class FolloweesFollowers < ActiveRecord::Migration
def up
create_table 'followees_followers', :id => false do |t|
t.column :followee_id, :integer
t.column :follower_id, :integer
end
end
def down
drop_table 'followees_followers'
end
end
ユーザーのフォロワー (User.first.followers) にアクセスしようとすると、エラーがスローされます。
SQLException: no such column: followees_followers.user_id: SELECT "users".* FROM "users" INNER JOIN "followees_followers" ON "users"."id" = "followees_followers"."user_id" WHERE "followees_followers"."followee_id" = 1
followees_followers.user_id にアクセスしている理由がわかりません。何か不足していますか?