Rails多个has_many通过和has_many

时间:2015-03-27 13:55:45

标签: ruby-on-rails ruby-on-rails-4

我试图为Rails4找到答案但是所有类似的问题都有不同的情况..当我这样做时

class Law < ActiveRecord::Base
    has_and_belongs_to_many :categories
    has_many :categories, -> { uniq }, through: :statutes
    has_many :categories, -> { uniq }, through: :sections

你可以看到法律从3个不同的来源获得类别。但它只是读取最后一个,并通过部分向我展示类别。如何合并上述三个语句。 (我正在跳过此模型中的其他关系)。

1 个答案:

答案 0 :(得分:0)

您的上一个关联将覆盖前两个关联,因为它们具有相同的名称。您可以用不同的方式命名您的关联以解决此问题,例如:

class Law < ActiveRecord::Base
  has_and_belongs_to_many :categories
  has_many :status_categories, -> { uniq }, through: :statutes, source: :categories
  has_many :section_categories, -> { uniq }, through: :sections, source: :categories