Rails 3 SQL-запрос внутри вложенных ресурсов

#sql #ruby-on-rails #nested-resources

#sql #ruby-on-rails #вложенные ресурсы

Вопрос:

Допустим, у меня есть ряд вложенных ресурсов ( Magazine , Edition , и Ad ) в приложении Rails, так что в журналах много изданий, в которых впоследствии много рекламы.

Как я могу выполнить запрос для создания всех объявлений во всех выпусках данного журнала, а затем упорядочить их, например, по дате создания?

В идеале я хотел бы создать массив со всеми результатами, используя один SQL-запрос, в отличие от выполнения запроса для каждого издания, а затем объединения последующих массивов.

Ответ №1:

Используйте has_many :through .

 class Magazine < ActiveRecord::Base
  has_many :editions
  has_many :ads, :through => :editions
end

@magazine.ads.order('created_at')
  

редактировать Прочитайте документы по has_many: до конца. Это мощная штука.