2016-05-25 4 views

ответ

3

Используйте has_many :through соотношения:

# Category.rb 
has_many :topics 
has_many :answers, through: :topics 

Теперь вы можете получить доступ ко всем ответам от всех тем, как так:

Category.first.answers.count 
1

если вы настроены на конфигурацию схемы (т.е. не используя has_many :through), вы хотите, чтобы начать с Answers и использовать пару join с, чтобы добраться до Category

Answers.joins(topic: :category).where(categories: { id: category_id }) 

здесь мы присоединяем на вложенной ассоциации, а затем с помощью ИНЕКЕ для фильтрации обнаруживаемых с помощью category_id

примечание: я думаю, что это правильный синтаксис, но вам, возможно, придется возиться с множеством topic и category там

+0

я действительно забыл о has_many: через, но это всегда здорово имеют множество решений 1 проблема. Спасибо! – Src

 Смежные вопросы

  • Нет связанных вопросов^_^