我有一个名为Course.each的课程与其他课程有两种多对多的关系。所以我需要两个连接表。我怎样才能在rails中实现它?
答案 0 :(得分:3)
请参阅以下(looong)答案,了解在同一模型的对象之间进行HABTM关联的可能方法的完整列表:https://stackoverflow.com/a/2168528/454094
一旦您决定是使用“普通”连接表还是使用:through
选项与中间的模型,定义两个不同的HABTM关联不应该比使用不同的名称和连接表/模型更复杂对他们来说E.g。
class Person < ActiveRecord::Base
has_and_belongs_to_many(:friends,
class_name: "Person",
join_table: "friend_connections",
foreign_key: "person_a_id",
association_foreign_key: "person_b_id")
has_and_belongs_to_many(:foes,
class_name: "Person",
join_table: "foes_connections",
foreign_key: "person_a_id",
association_foreign_key: "person_b_id")
end
注意:如链接答案所述,上述关联将是单向的。例如。 bob.friends << alice
不会自动bob
出现alice.friends
。根据您的特定项目,可能是也可能不是交易破坏者。不过,希望这会有所帮助。