У меня есть страницы, которые показывают на пользовательские статьи, разбор из RSSрендеринг обертонов каждый раз в каждом блоке
Есть три модели в моем приложении
class User < ActiveRecord::Base
has_many :channels
has_many :feed_articles, through: :channels
has_many :comments
end
class Channel < ActiveRecord::Base
has_many :user
has_many :feed_article
end
class FeedArticle < ActiveRecord::Base
belongs_to :channel
has_many :comments
end
Это контроллер:
def home
@articles = current_user.try(:feed_articles)
@comments = current_user.comments
end
Этот файл служит для просмотра:
def take_comments_for(article)
@comments.select{|f| f["feed_article_id"] == article.id }
end
def what_article(article)
current_user.comments.build(feed_article_id: article.id)
end
И это мнение:
- if user_signed_in?
- @articles.each do |article|
= link_to "#{article.title}",article.link
= raw article.description
- if article.favourite?
= render :partial => "layouts/remove_from_favourite",:locals => { :article =>article }
- else
= render :partial => "layouts/add_to_favourite",:locals => { :article => article }
- if take_comments_for(article).any?
comments
- take_comments_for(article).each do |comment|
= comment.content
= render :partial => "layouts/add_comment",:locals => { :article => article }
Я удалить HTML-теги для лучшего обзора.
И обертоны:
_add_to_favourite.html.haml (удалить одно и то же.)
= form_for article, remote: true do |f|
= f.hidden_field :favourite, :value => "true"
= f.submit "add to favorite", class: "btn btn-primary"
_add_comment.html.haml:
= form_for what_article(article) do |f|
= f.text_area :content, :rows => 3, :class => "span6", :placeholder => 'Enter text.'
= f.hidden_field :feed_article_id
%br
= f.submit "add comment", class: "btn btn-primary"
Если Я запускаю его, мои страницы загружаются с частичными отрезками каждый раз для каждой статьи, например:
Rendered layouts/_add_to_favourite.html.haml (1.9ms)
Rendered layouts/_add_comment.html.haml (91.7ms)
Rendered layouts/_add_to_favourite.html.haml (1.9ms)
Rendered layouts/_add_comment.html.haml (2.8ms)
Rendered layouts/_add_to_favourite.html.haml (2.1ms)
Rendered layouts/_add_comment.html.haml (2.6ms)
Rendered layouts/_add_to_favourite.html.haml (2.1ms)
Rendered layouts/_add_comment.html.haml (2.9ms)
Rendered layouts/_add_to_favourite.html.haml (1.7ms)
Rendered layouts/_add_comment.html.haml (2.6ms)
Rendered layouts/_remove_from_favourite.html.haml (2.0ms)
И страница загружается так долго.
И если я добавлю частичные файлы в свой файл просмотра, все в порядке.
Объясните мне, пожалуйста, почему это рендеринг каждый раз (я полагаю, что он принимает переменные @comments от контроллера) и как я могу исправить эту проблему.