named_scope和named_scope + lambda Ruby on Rails代码语句有什么不同?
named_scope :with_avatar, :conditions => ['avatar IS NOT NULL']和
named_scope :date_from, lambda { |date| { :conditions => ['created_at >= ?', DateTime.strptime(date, '%d.%m.%Y')] } }发布于 2010-08-21 14:43:50
使用lambda,您可以指定作用域的参数。
在上面的例子中,你可以这样说
Model.with_avatar和Model.date_from("10.08.2010"),但是您不能说例如Model.with_avatar(false)
在这种情况下,您需要在一定程度上小心lambda的参数:除非您将参数传递给date_from,否则它可能无法工作。一种“变通办法”是使用|*date|,检查是否传入了该参数,如果没有,则将其设置为某个默认值。
https://stackoverflow.com/questions/3536607
复制相似问题