ruby-on-rails - 排序和限制

标签 ruby-on-rails ruby

我需要执行以下查询:

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/

相关文章:

ruby - 我如何从佣金任务中提早返回?

mysql - Rails Web API 中的单模式 Multi-Tenancy

html - 没有路由匹配缺少所需的键 : [:id]

ruby-on-rails - has_many 嵌套中的自定义 RESTful 路由

ruby-on-rails - Ruby on Rails - 将表单数据直接提交到 session 变量

ruby-on-rails - Rails 使用 jbuilder 显示错误的正确方法

sql - “NOT IN”条件不适用于列表中的 'NULL'

ruby-on-rails - Rails 4 - 在 jsonb 列中动态添加嵌套 json 数据

ruby-on-rails - 调用 API 但不是针对每个用户

ruby-on-rails - 使用 ruby​​ on rails 为 haml 创建一个助手或其他东西