2013-08-23 3 views
1

Вопрос model has_many Ответ. Как подсчитать количество ответов на вопросы и порядок соответственно в порядке DESC? Я использую метод объединения.соединяет запрос для ассоциированной модели в порядке DESC

Как я могу ответить на все поступившие по вызову DESC?

ОБНОВЛЕНО

Вот как сделать самый ответил заказ вопрос DESC:

@questions = Question.find(:all, 
          joins: :answers, 
          select: ' "questions".*, count("answers".id) as answers_count', 
          group: '"questions".id', 
          order: "answers_count DESC") 

VIEW

<% @questions.each do |question| %> 
<%= question.answers_count %> 
<%= end %> 

У меня есть еще один вопрос сейчас. Я использую драгоценный камень ransack. Как добавить .ransack (params [: q]) в массив @questions?

ответ

0

если params[:q] является то, что говорит вам, сколько ответов вопрос есть, я думаю, что вы могли бы сделать

Question.tagged_with(params[:tag]).joins(answers: :user).uniq.ransack(params[:q]).order("params[:q] DESC") 

Но это не проверял, так что не уверен. проверьте документацию по заказу here, и вы сможете это получить!

Вы также можете поместить результаты этого запроса в свое первоначальное сообщение, которое поможет разобраться в этом, если это не сработает.

+0

Спасибо, что ответьте! Может быть, вы можете посмотреть обновленный вопрос и что-нибудь предложить? Я нашел, как отвечать на вопросы в порядке DESC, однако не могу понять, как добавить .ransack (params [: q]) в массив @questions. – vitdes

+0

не знаю много о ransack, извините! – dax

Смежные вопросы