У меня есть 3 модели source.rb принадлежит category.rb и feed_entry.rb принадлежит source.rb.Как оптимизировать этот код в Ruby on Rails?
мне нужно отобразить feed_entries в категории
Название категории
FeedEntry 1
FeedEntry 2
FeedEntry 3
Теперь он выглядит как этот
class CategoriesController < ApplicationController
def show
@category = Category.find(params[:id])
@sources = @category.sources.all
end
end
show.html.erb
<%= @category.name %></h4>
<% @sources.each do |source| %>
<% source.feed_entries.each do |feed_entry| %>
<%= link_to feed_entry.name, feed_entry %>
<%= feed_entry.source.title %>
<% end %>
<% end %>
это очень медленно
Я использую Mongoid 4, рельсы 4
Модели
class Category
include Mongoid::Document
field :name, type: String
has_many :sources, dependent: :destroy
end
class FeedEntry
include Mongoid::Document
field :name, type: String
belongs_to :source, touch: true
validates :source_id, presence: true
end
class Source
include Mongoid::Document
field :title, type: String
has_many :feed_entries, dependent: :destroy
belongs_to :category, touch: true
end
Обычный способ оптимизации запросов MongoDB состоит в том, чтобы перестроить вашу схему посредством денормализации и встраивания. Итак, как выглядят ваши модели? –