Commit 8acd760e5140f9ca5cfcccd17622dfccdfc6e21f
1 parent
1b944f75
Exists in
master
and in
29 other branches
Avoid paginating after loading everything.
Instead, use #paginate to find the records. (ActionItem1689)
Showing
2 changed files
with
16 additions
and
13 deletions
Show diff stats
app/controllers/my_profile/cms_controller.rb
... | ... | @@ -66,19 +66,21 @@ class CmsController < MyProfileController |
66 | 66 | conditions = ['type != ?', 'RssFeed'] |
67 | 67 | end |
68 | 68 | |
69 | - @articles = @article.children.find( | |
70 | - :all, | |
71 | - :order => "case when type = 'Folder' then 0 when type ='Blog' then 1 else 2 end, updated_at DESC", | |
72 | - :conditions => conditions | |
73 | - ).paginate(:per_page => per_page, :page => params[:npage]) | |
69 | + @articles = @article.children.paginate( | |
70 | + :order => "case when type = 'Folder' then 0 when type ='Blog' then 1 else 2 end, updated_at DESC", | |
71 | + :conditions => conditions, | |
72 | + :per_page => per_page, | |
73 | + :page => params[:npage] | |
74 | + ) | |
74 | 75 | end |
75 | 76 | |
76 | 77 | def index |
77 | 78 | @article = nil |
78 | - @articles = profile.top_level_articles.find( | |
79 | - :all, | |
80 | - :order => "case when type = 'Folder' then 0 when type ='Blog' then 1 else 2 end, updated_at DESC" | |
81 | - ).paginate(:per_page => per_page, :page => params[:npage]) | |
79 | + @articles = profile.top_level_articles.paginate( | |
80 | + :order => "case when type = 'Folder' then 0 when type ='Blog' then 1 else 2 end, updated_at DESC", | |
81 | + :per_page => per_page, | |
82 | + :page => params[:npage] | |
83 | + ) | |
82 | 84 | render :action => 'view' |
83 | 85 | end |
84 | 86 | ... | ... |
app/helpers/folder_helper.rb
... | ... | @@ -4,10 +4,11 @@ module FolderHelper |
4 | 4 | |
5 | 5 | def list_articles(articles, recursive = false) |
6 | 6 | if !articles.blank? |
7 | - articles = articles.find( | |
8 | - :all, | |
9 | - :order => "updated_at DESC" | |
10 | - ).paginate(:per_page => 10, :page => params[:npage]) | |
7 | + articles = articles.paginate( | |
8 | + :order => "updated_at DESC", | |
9 | + :per_page => 10, | |
10 | + :page => params[:npage] | |
11 | + ) | |
11 | 12 | |
12 | 13 | render :file => 'shared/articles_list', :locals => {:articles => articles, :recursive => recursive} |
13 | 14 | else | ... | ... |