gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:20:46 24 4
gpt4 key购买 nike

在了解详细信息之前。

问题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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com