【发布时间】:2012-06-20 09:02:50
【问题描述】:
我有一个这样的 sql:
SELECT TOP 1 field_name * FROM table_name
我想把它转换成 rails 中的 activerecord。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1
我有一个这样的 sql:
SELECT TOP 1 field_name * FROM table_name
我想把它转换成 rails 中的 activerecord。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1
那个代码不起作用?
YourModel.select(:field_name).first
或
YourModel.select(:field_name).order('id desc').first
【讨论】:
YourModel.select(:field_name).limit(1),但这并不重要,因为first 方法在用于ActiveRecord::Relation(如本例中)时,实际上会使用@ 987654326@
只需使用limit(1) 或first:
Model.select(:field_name).limit(1)
【讨论】:
从 Rails 6 开始,您可以使用以下内容:
YourModel.order(id: :desc).pick(:field_name)
pick 比
更有效率YourModel.select(:field_name).order('id desc').first
因为它只会加载实际值,而不是整个记录对象。
更多详情请关注link to docs。
【讨论】: