Скажем, у меня есть модель должности и категории, причем каждое сообщение относится к категории. На почти каждой странице я получаю список категорий:Rails: Удаление ненужных запросов к базе данных
@categories = Category.all
Это создает массив объектов категории. Теперь скажите, что каждая категория имеет атрибуты id и name. При просмотре сообщения я хочу отобразить название категории.
Первоначально я получаю название категории делать что-то вроде этого:
@post = Post.find(params[:id], :include => :category)
Однако, я понимаю, что у меня уже есть массив @categories. Нет необходимости: включать, когда у меня уже есть список категорий. Итак, вместо этого я сейчас выполняю поиск по массиву:
category = @categories.find { |category| @post.category_id == category.id }.name
Это работает и уменьшает количество запросов. Мой вопрос в том, что это лучший способ справиться с сокращением числа запросов (без кеширования)?
хорошо пункт. UNF. ни один голос не оставил :) –