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