Rails - Создание запроса ActiveRecord? - PullRequest
0 голосов
/ 04 марта 2011

У меня есть модель Пользователь и модель message.viewed_at

То, что я хочу сделать, - дать пользователю определить, когда он последний раз просматривал сообщение, если вообще когда-либо.

Учитывая пользователя,Мне нужно найти все там сообщения, а затем отсортировать по самому последнему просмотренному_сверху, а затем взять эту запись и вывести временную метку просматриваемого, если есть.

@user = User.find(2)
@user.find(:first, :conditions => user.messages.viewed_at != nil)

Но это не работает, предложения?Спасибо

Ответы [ 2 ]

2 голосов
/ 04 марта 2011

@user.messages.first(:order => "viewed_at desc")

Вот документы.

@user.messages.where("viewed_at is not null").order("viewed_at desc").first

1 голос
/ 04 марта 2011

Справочник по запросам rails является отличным ресурсом для этого.

Ответ JDL выше будет работать.Кроме того, не уверен, что мин / макс работает на даты, но если это так, метод ниже может быть более эффективным:

@user.messages.where("viewed_at is not null").maximum("viewed_at")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...