В Rails, как мне получить 10 самых последних записей в модели? - PullRequest
4 голосов
/ 19 сентября 2011

Допустим, я хочу вернуть последнюю запись в модель, это легко. Самая последняя запись найдена как (в порядке убывания)

 @post = Post.last 

Что если я захочу 10 самых последних сообщений, т.е.

 @recentposts = Post.#whatdoIputhere?

Как я мог бы наиболее легко и эффективно сделать это?

Спасибо!

Ответы [ 5 ]

12 голосов
/ 19 сентября 2011

Альтернатива ответу Джеймса Шорра:

posts = Post.order('created_at DESC').limit(10)

Преимущество этой альтернативы в том, что она позволяет вам продолжать связывать больше реляционных областей в конце этого:

posts.where(:user_id => 1)

Только когда объект итерируется или inspect ed, запрос SQL фактически выполняется.

7 голосов
/ 19 сентября 2011

Попробуйте это:

@recentposts = Post.all(:order => 'created_at DESC', :limit => 10)
0 голосов
/ 16 декабря 2016

Чтобы получить последние 10 записей в порядке убывания:

Post.last(10).reverse
0 голосов
/ 16 декабря 2016

В Rails 4 вы можете сделать

Post.order(created_at: :desc).limit(10)
0 голосов
/ 13 июня 2014

попробуйте все это

@ latestposts = Post.order ("creation_at desc"). Limit (10)

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