Поток журналов с несколькими запросами в Rails 2.3 - PullRequest
0 голосов
/ 10 апреля 2011

Я использую плагин acts_as_category для управления логикой категорий. Почти на каждой странице сайта отображается дерево категорий и подкатегорий:

<div id="categories_">
  <% Category.roots.each do |category| %>
    <h3><%= category.name %></h3>
    <div>
      <ul class="subcat">
      <% category.children.each do |subcategory| %>
        <li><%= link_to subcategory.name, "/category/#{subcategory.to_param}" %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
</div>

Он генерирует множество SQL-запросов, показанных в файле журнала, есть ли способ извлечь несколько строк в одном запросе ?

EDIT:

Я попытался переписать область действия корней в модели категории с теми же результатами:

named_scope :roots,
            :conditions => ["((hidden IS NULL OR hidden = 0) AND (parent_id IS NULL))"],
            :include => :children

EDIT:

Кажется, что проблема с плагином, и автор объяснил здесь (http://goo.gl/MwRSJ), почему его нельзя изменить. Любые другие предложения для управления моими категориями ?. Я использовал act_as_tree но это кажется немного устаревшим. Спасибо!.

1 Ответ

1 голос
/ 10 апреля 2011

То, что вы видите, - это проблема запроса N + 1, которая решается с помощью стремящихся ассоциаций загрузки .

<% Category.roots(:include => :children).each do |category| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...