Kind of a complex find :order ...

Hi,

i ve got two models, "Question" and "Answer" A "question" can have many "answers", or none.

I want to order my questions by answers date or question date if it has no answer, i tried to do that :

Question.find(:all, :order=>"answers.date DESC, questions.date DESC")

But questions without answers appear always after questions with answers, even when the question was created after an answer..

Could you give me an hints ?

Thanks a lot..

I think for this I would find all the questions (and eager load the answers for those questions) and then sort the array. e.g.

class Question < ActiveRecord::Base   has_many :answers, :order => "answers.date DESC"

  def latest_date_including_answers     if self.answers.blank?       return self.date     else       return answers.first.date     end   end

  def self.newest_including_answers     find(:all, :include => :answers).sort{|a,b|       a.latest_date_including_answers <=> b.latest_date_including_answers     }   end end

The latest_date_including_answers method assumes that answers always come after the question is asked (since it doesnt compare answer.date to question.date).