2016-05-25 5 views

Antwort

3

Verwenden einer has_many :through Beziehung Vorform kann:

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

Jetzt können Sie alle Antworten Zugriff aus allen Themen wie so:

Category.first.answers.count 
1

wenn Sie in Ihrer Schemakonfiguration festgelegt sind (d. h nicht mit einem has_many :through), möchten Sie würden mit Answers und nutzen ein paar join s beginnen zu Category

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

hier sind Beitritt wir auf eine verschachtelte Vereinigung zu bekommen, und dann eine where-Klausel zu filtern aus der category_id

Anmerkung: ich denke, dies ist die richtige Syntax ist, aber Sie können mit der Vielzahl von topic und category dort

+0

mir wirklich vergessen über has_many herumzudaddeln müssen: durchgehend, aber es ist immer toll, habe viele Lösungen von 1 Problem. Vielen Dank! – Src