命令行参数 rake 任务错误的参数数量

command line arguments rake task wrong number of arguments

我有一个非常简单的 rake 任务,是按照 this tutorial 创建的。 rake 任务如下:

namespace :abc do
  task :arbitrary => :environment do
    Rails.application.config.method = ENV["CAT_METHOD"] || 1
    Rails.logger.debug "The method is #{Rails.application.config.method}"
  end
end

我将此任务称为:

bundle exec rake abc:arbitrary CAT_METHOD=2

但是它给了我这个错误。

ArgumentError: wrong number of arguments(0 for 1)

我做错了什么?我对 RoR 很陌生。我正在使用 ruby 1.9.3 和 rails 3.2

问题出在 Rails.application.config.method 行。标准方法 Kernel#method 用于检索方法对象和(某种)保留字,因为它是在所有对象上定义的。要解决此问题,您必须以不同的方式命名您的自定义配置,例如 Rails.application.config.cat_method.