在了解详细信息之前。
问题1:--这里的范围是什么意思(即名为**范围)?**
使用命名范围有什么好处?
Now:-
摘自《Rails 敏捷开发》一书:--
class Order < ActiveRecord::Base
named_scope :last_n_days, lambda { |days| {:conditions =>
['updated < ?' , days] } }
named_scope :checks, :conditions => {:pay_type => :check}
end
这样的命名范围将使查找上周的订单价值成为可能
折断。
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:
-
108 命名范围(rails 2 中的一些基础知识)
-
Rails 3 中的 202 个活动记录查询(Rails 3 中的一些基础知识)
-
215 Rails 中的高级查询 3(rails 3 中的一些高级主题)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)