Как можно оптимизировать вывод feed_entries в category?

Здравствуйте есть три модели source.rb, feed_entry.rb и category.rb.

source.rb
class Source
include Mongoid::Document

field :title, type: String

has_many :feed_entries, dependent: :destroy
belongs_to :category, touch: true
end


feed_entry.rb
class FeedEntry
include Mongoid::Document

field :name, type: String
belongs_to :source, touch: true
validates :source_id, presence: true
end


category.rb
class Category
include Mongoid::Document

field :name, type: String

has_many :sources, dependent: :destroy
end


Как можно оптимизировать вывод feed_entries в category ?

На данный момент это сделано так:

categories_controller.rb
class CategoriesController < ApplicationController
def show
@category = Category.find(params[:id])
@sources = @category.sources.all
end
end

show.html.erb
<%= @category.name %>

<% @sources.each do |source| %>
  <% source.feed_entries.each do |feed_entry| %>
    <%= link_to feed_entry.name, feed_entry %></p>
    <%= feed_entry.source.title %>
  <% end %>
<% end %>


Проект использует mongoid 4 и rails 4
  • Вопрос задан
  • 2372 просмотра
Решения вопроса 1
Able1991
@Able1991
Пишу на рельсах
у класса Category

def feed_entries
    FeedEntry.in(source_id: sources.map(&:id))
end


и потом сразу во вьюхе
@category.feed_entries
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы