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

mar*_*cgg 3 ruby warnings ruby-on-rails

我收到以下警告:

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)
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我在这里想念什么?

shi*_*ara 5

您在范围上有一个参数。您需要使用它。还是没有定义

named_scope :expiring_next_month, lambda { {:conditions => {:ed => DateTime.now.beginning_of_month}}}
named_scope :expired, lambda { {:conditions => ["ed < ?", DateTime.now.beginning_of_month]}}
Run Code Online (Sandbox Code Playgroud)

就我而言,您可以不使用args进行调用。不在您的情况下。在ruby 1.8中,没有办法在lambda中具有可选的参数。