【问题标题】:What is a difference between named_scope and named_scope + lambdanamed_scope 和 named_scope + lambda 有什么区别
【发布时间】:2010-08-21 06:29:31
【问题描述】:

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')] } }

【问题讨论】:

    标签: ruby-on-rails named-scope


    【解决方案1】:

    使用 lambda,您可以为范围指定参数。

    在上述情况下,你可以说

    Model.with_avatarModel.date_from("10.08.2010"),但是你不能说例如 Model.with_avatar(false) >

    在这种情况下,您需要注意 lambda 的参数:除非您将参数传递给 date_from,否则它可能不起作用。一种“解决方法”是使用 |*date| ,检查它是否被传入,如果不是,则将其设置为某个默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多