has_and_belongs_to_many で友達と敵のつながりを作ろうとしているので、次のように作成しました。
create_table :people do |t|
t.string :name
end
create_table "relations", :id => false do |t|
t.integer "person_a_id", :null => false
t.integer "person_b_id", :null => false
t.boolean :friends
end
私が達成したかった最初の段階は、Person: HABTM 関係を定義することであり、後でスコープを定義することです。has_and_belongs_to_many には :foreign_key と :association_foreign_key があるため、Person で接続を定義するのに問題があります。したがって、A が B の友人である場合、B は A の友人ではありません。見つかったのは、:finder_sql と :delete_sql を手動で設定することです。私が見逃しているエレガントなソリューションがあるに違いないと確信しています。
ありがとう