我有3个模特
# generic one
class Someone < ActiveRecord::Base
end
# customer
class Customer < Someone
has_and_belongs_to_many :groups, join_table: "some_join_table", class_name: "Group"
end
# custom group
class Group < GenericGroup
has_and_belongs_to_many :customers, join_table: 'some_join_table', class_name: "Customer"
end
我们假设数据库已被填满。
当我执行命令Customer.first.groups
时,我将获得具有正确结果的侄女数组([])。当我尝试在Someone
模型上执行相同的操作时,什么都不会发生,但是当我尝试这样做时,反向'魔术发生'
Group.first.customers
#=> [<Someone..>]
我如何强制has_and_belongs_to_many返回正确版本的Customer类?
答案 0 :(得分:-1)
我找到了这篇博文
http://blog.flatironschool.com/why-you-dont-need-has-and-belongs-to-many/
并决定将HABTM
关系更改为has_many through
。改变后一切正常。