Ruby On Rails 3问题排序查询结果

时间:2011-04-25 20:20:23

标签: ruby-on-rails ruby-on-rails-3 sorting will-paginate

我正在尝试按created_at日期降序排序我的结果,但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 个答案:

答案 0 :(得分:3)

@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)

答案 1 :(得分:0)

我遇到了类似的问题,看起来你要创建的created_at属于Folder而不是message。

你可以试试吗

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