Ruby on rails 3 problematic query result query

I am trying to sort my results in descending order by created_at date, but order.clause is not working. I'm afraid I looked at this for too long and could completely benefit from a second (or third or more) set of eyes. Please help! For a moment I hit my head against the wall.

Thanks in advance.

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 
+4
source share
2 answers
 @msgs = @folder.messages.order("created_at DESC") @messages = @msgs.where(["deleted IS NULL"] || ["deleted = ?", false]) 

it should be

 @messages = @folder.messages.order("created_at DESC").where("deleted = ? or deleted IS NULL", false) 
+3
source

I had a similar problem and it seems that the created_at that you are going to use belongs to the folder instead of messages.

Can you try with

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

All Articles