Проблема сортировки результатов Ruby On Rails 3 - PullRequest
4 голосов
/ 26 апреля 2011

Я пытаюсь упорядочить свои результаты в порядке убывания по дате созданной даты, но похоже, что order.clause не работает.Боюсь, я смотрел на это слишком долго и мог бы извлечь пользу из второго (или третьего или более) набора глаз.

mailbox_controller.rb:

def show  
  current_user = User.find(session[:user_id])  
  @folder = Folder.where("user_id = #{current_user.id}").first  
  @msgs = @folder.messages.order("created_at DESC")  
  @messages = @msgs.where(["deleted IS NULL"] || ["deleted = ?", false]).paginate :per_page => 5, :page => params[:page]  
end

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011
@msgs = @folder.messages.order("created_at DESC")
@messages = @msgs.where(["deleted IS NULL"] || ["deleted = ?", false])

должно быть

@messages = @folder.messages.order("created_at DESC").where("deleted = ? or deleted IS NULL", false)
0 голосов
/ 22 февраля 2014

У меня была похожая проблема, и похоже, что созданный вами_каталог принадлежит Папке, а не сообщениям.

Можете ли вы попробовать с

@msgs = @folder.messages.order("messages.created_at DESC")
...