Commit 3e4f46a015ed0bfc745859a2196e9d43a3ca2297
Exists in
staging
and in
42 other branches
Merge branch 'fix_members_listing' into 'master'
Fix members listing There is a problem in environments when listing profile members: No Method Error 'map' for #<Arel::Nodes::SqlLiteral> This problem is related to a 'count' being executed in a query with 'includes'. See merge request !392
Showing
3 changed files
with
6 additions
and
5 deletions
Show diff stats
app/controllers/public/profile_controller.rb
| ... | ... | @@ -65,13 +65,13 @@ class ProfileController < PublicController |
| 65 | 65 | |
| 66 | 66 | def friends |
| 67 | 67 | if is_cache_expired?(profile.friends_cache_key(params)) |
| 68 | - @friends = profile.friends.includes(relations_to_include).paginate(:per_page => per_page, :page => params[:npage]) | |
| 68 | + @friends = profile.friends.includes(relations_to_include).paginate(:per_page => per_page, :page => params[:npage], :total_entries => profile.friends.count) | |
| 69 | 69 | end |
| 70 | 70 | end |
| 71 | 71 | |
| 72 | 72 | def members |
| 73 | 73 | if is_cache_expired?(profile.members_cache_key(params)) |
| 74 | - @members = profile.members_by_name.includes(relations_to_include).paginate(:per_page => members_per_page, :page => params[:npage]) | |
| 74 | + @members = profile.members_by_name.includes(relations_to_include).paginate(:per_page => members_per_page, :page => params[:npage], :total_entries => profile.members.count) | |
| 75 | 75 | end |
| 76 | 76 | end |
| 77 | 77 | ... | ... |
app/models/profile.rb
plugins/people_block/controllers/people_block_plugin_profile_controller.rb
| ... | ... | @@ -6,12 +6,13 @@ class PeopleBlockPluginProfileController < ProfileController |
| 6 | 6 | if is_cache_expired?(profile.members_cache_key(params)) |
| 7 | 7 | unless params[:role_key].blank? |
| 8 | 8 | role = Role.find_by_key_and_environment_id(params[:role_key], profile.environment) |
| 9 | - @members = profile.members.with_role(role.id).includes(relations_to_include).paginate(:per_page => members_per_page, :page => params[:npage]) | |
| 9 | + @members = profile.members.with_role(role.id) | |
| 10 | 10 | @members_title = role.name |
| 11 | 11 | else |
| 12 | - @members = profile.members.includes(relations_to_include).paginate(:per_page => members_per_page, :page => params[:npage]) | |
| 12 | + @members = profile.members | |
| 13 | 13 | @members_title = 'members' |
| 14 | 14 | end |
| 15 | + @members = @members.includes(relations_to_include).paginate(:per_page => members_per_page, :page => params[:npage], :total_entries => @members.count) | |
| 15 | 16 | end |
| 16 | 17 | render "profile/members" |
| 17 | 18 | end | ... | ... |