订购和限制

时间:2011-04-04 11:42:32

标签: ruby-on-rails ruby

我需要执行以下查询:

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

我放了:

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

我喜欢输出'limit 10'而不是限制1.我认为它是.last,但是我可以用其他方式表达它来限制10。

由于

2 个答案:

答案 0 :(得分:5)

假设您使用的是Rails 3

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

请注意,如果您限制为超过1条记录,则最后无法调用#id,因为结果是数组。

获取所有ID

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

对于Rails 2.3,使用旧的基于哈希的条件。

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

同样适用于id

<%= 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 :(得分:1)

<ul>
<% Specimen.find(:all, :order => 'distribution_sheet_id desc', :limit => 10).each do |specimen| %>
  <li><%= specimen.id %></li>
<% end %>
</ul>