2015-06-25 2 views
0

, пожалуйста, помогите решить проблему. столов:Как изменить порядок сортировки коллекции?

users: 
id: integer 
name: varchar 

posts: 
id: integer 
title: varchar 
user_id: integer 
views: integer 

модель:

User: 
class User < ActiveRecord::Base 
    has_many :posts, dependent: :destroy 
end 

Posts: 
class Post < ActiveRecord::Base 
    belongs_to :user 
end 

контроллер:

def popular_diary 
    @diaries = User.joins(:posts).group(:user_id).order('SUM(posts.views)') 
end 

результирующее @diaries содержит пользователь коллекции, отсортированные по количеству просмотров. в порядке возрастания (ASC). но мне нужно получить коллекцию пользователей, отсортированную в порядке убывания (DESC).

Я пытался сделать так:

@diaries = User.joins(:posts).group(:user_id).order('SUM(posts.views) :DESC') 

, но я получил сообщение об ошибке:

SQLite3::SQLException: near ":DESC": syntax error: SELECT "users".* FROM "users" INNER JOIN "posts" ON "posts"."user_id" = "users"."id" GROUP BY user_id ORDER BY SUM(posts.views) :DESC 
+1

Shoudn't ': DESC' быть просто' DESC'? – Pavan

ответ

1

@pavan прав. Это должно быть «DESC» не «: DESC»