2015-01-08 37 views
0

我有一个非常简单的rake任务,由以下this tutorial创建。 rake任务是:命令行参数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

+2

'Rails.application.config.method'创建问题 – Salil

回答

1

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

+0

认为这是一个可能的原因,我也将方法名称更改为cat_method,但它也失败了。我重新从CVS中提取整个文件,然后使用方法名称cat_method从头开始编写这个任务,它可以工作。 – inquisitive