2010-09-15 1 views
0

У меня есть модель, в которой статья может содержать несколько тегов (и несколько тегов). Статья имеет два подкласса, продукт и комплект. У продуктов есть категория, комплекты нет.complex arel query

Как получить все статьи (как наборы, так и продукты) определенного тега (я знаю tag.id), с загруженной категорией продукта (избегая n + 1)?

ответ

0

Предполагая, что ваши ассоциации уже настроены (т. Е. Тег has_many: статьи через article_tags и т. Д.), Если вы используете Rails 3, вы можете использовать #includes, когда вы найдете свою находку. Перемещайте BELONGS_TO: категорию к классу статьи (да, это семантический хорошо сделать так), то:

@tag = Tag.first 
@tag.articles.includes(:category) 

Должен работать.

http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations

+0

К сожалению, это не так. Ассоциация не назвала «категории»; возможно, вы это написали? Статьи не имеют категорий, только продукты. – Jan

+0

ах, я вижу, вы сначала помещали категории в статьи, но это было бы семантически корректно, но не было бы доменом мудрым. Наборы состоят из нескольких статей, которые могут иметь разные категории взамен. – Jan

+0

Можете ли вы опубликовать свой код модели для статьи, продукта и комплекта? – jenjenut233

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

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