我需要执行以下查询:
SELECT * FROM "specimens" ORDER BY distribution_sheet_id DESC LIMIT 10
我已经把:
<%= Specimen.last(:order => :distribution_sheet_id).id %>
我喜欢输出 'limit 10' 而不是 limit 1。我想它是 .last,但我可以用其他方式表达它以限制 10。
谢谢
最佳答案
假设您使用的是 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 %>
关于ruby-on-rails - 排序和限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5537947/