has_and_belongs_to_many加载错误的资源

时间:2015-06-18 16:31:15

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我有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类?

1 个答案:

答案 0 :(得分:-1)

我找到了这篇博文 http://blog.flatironschool.com/why-you-dont-need-has-and-belongs-to-many/ 并决定将HABTM关系更改为has_many through。改变后一切正常。