Как сделать заказы по self.created_at и children.created_at в условиях поиска? - PullRequest
1 голос
/ 12 марта 2012

Я разрабатываю с Rails 2.2.2 и ruby ​​1.8.6.

Я хочу заказать Topic модель, которая имеет много комментариев по последней comments.created_at или self.created_at, если неткомментарий.

#<Topic id: 1, :created_at: "2012-03-12-10:00:00">
#<Topic id: 2, :created_at: "2012-03-13-09:00:00">
   =>#<Comment topic_id: 2, :created_at: "2012-03-15-16:00:00">
#<Topic id: 3, :created_at: "2012-03-14-14:00:00">
   =>#<Comment topic_id: 3, :created_at: "2012-03-14-16:00:00">

# Order should be => Topic id 2,3,1

Я написал условия, которые проходят два условия заказа, но этот порядок по первому условию.

Topic.find(:all, :order=>"topics.created_at desc, comments.created_at desc",    :include=>"comments")

# Order is => Topic id 3,2,1

Я знаю, что sort_by легко заказать, ноЯ хочу упорядочить по параметру порядка в методе find, потому что я использую плагин paginating_find.

1 Ответ

2 голосов
/ 12 марта 2012

Если вы используете MySQL, вы можете заказать их следующим образом:

:order => "IFNULL(comments.created_at, topics.created_at) DESC"

Другие СУБД должны иметь аналогичные функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...