Ruby on rails 3 由于组关键字,Kaminari无法工作
其中Ruby on rails 3 由于组关键字,Kaminari无法工作,ruby-on-rails-3,kaminari,Ruby On Rails 3,Kaminari,其中registered=where(“已停用的位置为空,最后一次登录的位置不为空”) Kaminari不使用组子句。如何在此查询中优化group子句?我使用以下方法修复了它: @users = User.registred .includes(:items) .joins('LEFT OUTER JOIN items ON users.id=items.user_id') .group(User.column_names.collect do |
registered=where(“已停用的位置为空,最后一次登录的位置不为空”)
Kaminari不使用组子句。如何在此查询中优化group子句?我使用以下方法修复了它:
@users = User.registred
.includes(:items)
.joins('LEFT OUTER JOIN items ON users.id=items.user_id')
.group(User.column_names.collect do |c| "#{User.table_name}.#{c}" end.join(','))
.order('CASE WHEN LENGTH(users.profile_picture) > 0 THEN 0 ELSE 1 END, followers_count DESC, bibbed_items_count DESC, SUM(items.user_likes_count) DESC, users.id')
有相同的问题,像您一样修复了它-在
组
子句中提供适当的id
值。但是,显然它不需要替换原来的group子句-只需附加一个额外的调用:
@users = User.registred
.includes(:items)
.joins('LEFT OUTER JOIN items ON users.id=items.user_id')
.group("users.id")
.order('CASE WHEN LENGTH(users.profile_picture) > 0 THEN 0 ELSE 1 END, followers_count DESC, bibbed_items_count DESC, SUM(items.user_likes_count) DESC, users.id')
@users = @users.page(params[:page])
我想这可能会对您有所帮助:我看不出您在哪里调用
page
方法……您不需要新的group子句。如果将users.id放在第一个group子句的末尾,它将起作用。谢谢你的回答,因为你我才明白。
@users = User.registred
.includes(:items)
.joins('LEFT OUTER JOIN items ON users.id=items.user_id')
.group(User.column_names.collect do |c| "#{User.table_name}.#{c}" end.join(','))
.order('CASE WHEN LENGTH(users.profile_picture) > 0 THEN 0 ELSE 1 END, followers_count DESC, bibbed_items_count DESC, SUM(items.user_likes_count) DESC, users.id')
.group('users.id')