упорядочить и ограничить - PullRequest
4 голосов
/ 04 апреля 2011

Мне нужно сделать следующий запрос:

SELECT * FROM "specimens" ORDER BY distribution_sheet_id DESC LIMIT 10

и я поставил:

<%=  Specimen.last(:order => :distribution_sheet_id).id  %>

Мне нравится выводить «предел 10», а не предел 1. Я предполагаю, что это .last, но могу ли я выразить это другим способом, чтобы ограничить 10.

Спасибо

Ответы [ 2 ]

5 голосов
/ 04 апреля 2011

Предполагается, что вы используете Rails 3

<%= Specimen.limit(10).order("distribution_sheet_id").all %>

Обратите внимание, что если вы ограничиваете более 1 записи, вы не можете вызвать #id в конце, потому что результатом является массив.

Чтобы получить все идентификаторы

<%= Specimen.limit(10).order("distribution_sheet_id").map(&:id) %>

Для Rails 2.3 используйте старые условия на основе хеша.

<%= Specimen.all(:order => "distribution_sheet_id", :limit => 10) %>

и то же самое относится к идентификатору

<%= Specimen.all(:order => "distribution_sheet_id", :limit => 10).map(&:id) %>

Здесь я использую метод #to_sentence, чтобы объединить все ID.Адаптируйте код в соответствии с вашим вариантом использования.

<%= Specimen.all(:order => "distribution_sheet_id", :limit => 10).map(&:id).to_sentence %>
1 голос
/ 04 апреля 2011
<ul>
<% Specimen.find(:all, :order => 'distribution_sheet_id desc', :limit => 10).each do |specimen| %>
  <li><%= specimen.id %></li>
<% end %>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...