无法摆脱Rails警告:“块参数的多个值(0表示1)”

时间:2010-11-05 13:42:58

标签: ruby-on-rails ruby warnings

我收到了这些警告:

payment_method.rb:11: warning: multiple values for a block parameter (0 for 1)
payment_method.rb:12: warning: multiple values for a block parameter (0 for 1)

payment_method.rb第11行和第12行:

class PaymentMethod < ActiveRecord::Base
  ...
  named_scope :expiring_next_month, lambda {|pm| {:conditions => {:ed => DateTime.now.beginning_of_month}}}
  named_scope :expired, lambda {|pm| {:conditions => ["ed < ?", DateTime.now.beginning_of_month]}}
  ...
end

我在这里缺少什么?

1 个答案:

答案 0 :(得分:4)

你的范围有一个参数。你需要使用它。或者不定义它

named_scope :expiring_next_month, lambda { {:conditions => {:ed => DateTime.now.beginning_of_month}}}
named_scope :expired, lambda { {:conditions => ["ed < ?", DateTime.now.beginning_of_month]}}

根据我的情况,你可以不用args打电话。不是你的情况。在ruby 1.8中,没有办法在lambda中使用optionnal params。