ruby-on-rails - Rails 中命名作用域的意义是什么?

标签 ruby-on-rails named-scope

在了解详细信息之前。

问题1:-- 这里的scope是什么意思(即named **scope)?**

使用命名范围有什么好处?

现在:-

来自 Agile Development with Rails 一书:--

class Order < ActiveRecord::Base
   named_scope :last_n_days, lambda { |days| {:conditions =>
  ['updated < ?' , days] } }

 named_scope :checks, :conditions => {:pay_type => :check}
end

这样一个命名范围将使查找上周的订单值(value)成为一个 快照。

   orders = Orders.last_n_days(7)

范围也可以合并

orders = Orders.checks.last_n_days(7)

为什么我们在这里使用 named_scope。我们可以使用方法来做同样的事情。我们使用 named_scope 有什么特别之处。

最佳答案

我们得到更短、可链接且更易读的代码:

orders = Orders.checks.last_n_days(7)

更具可读性、更短且不可链接
orders = Orders.all :conditions => ["updated < ? and pay_type='check'", 7]

在 Rails3 中优势会更大,因为 arel .有关更多信息,我建议观看 Railscasts:

  1. 108 named_scope (Rails 2 的一些基础知识)
  2. 202 Active Record Queries in Rails 3 (Rails 3 的一些基础知识)
  3. 215 Advanced Queries in Rails 3 (rails 3 中的一些高级主题)

关于ruby-on-rails - Rails 中命名作用域的意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919730/

相关文章:

ruby-on-rails - 如何使用 Paperclip 和 Rails 从 Amazon S3 中删除文件?

ruby-on-rails - 如何在 Heroku 上的 Rails 应用程序上运行 npm?

ruby-on-rails - 作用域关联上的 Rails 中的 counter_cache

ruby-on-rails - rails : Is that possible to define named scope in a module?

html - 纯 css 无法正确加载到 Ruby on Rails 中

ruby-on-rails - Heroku 应用程序崩溃

html - 如何将 html id 添加到 rails form_tag

ruby-on-rails - 访问范围时未定义方法 `default_scoped?'

ruby-on-rails - 命名范围的验证