我正在尝试与 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 关系,然后是定义范围。现在我在 Person 中定义连接时遇到了麻烦,因为 has_and_belongs_to_many 有:foreign_key 和 :association_foreign_key,所以如果 A 是 B 的朋友,B 不是 A 的朋友。我已经搜索了 HABTM 注释,唯一的选择是我发现是手动设置:finder_sql 和:delete_sql。我很确定一定有一个我缺少的优雅解决方案。
谢谢