2015-03-27 3 views
0

Я пытался найти ответ на этот вопрос для Rails4, но все подобные вопросы есть разные ситуации .. Когда я делаю этоRails несколько has_many через и has_many

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

вы можете увидеть, что закон получает категории от 3-х различных источников , Но он просто читает последний и показывает мне категории через разделы. Как объединить вышеупомянутые три утверждения. (Я пропускаю другие отношения в этой модели).

ответ

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 
Смежные вопросы