相关疑难解决方法(0)

如何将命令行参数传递给rake任务

我有一个rake任务需要将值插入多个数据库.

我想从命令行或另一个 rake任务将此值传递给rake任务.

我怎样才能做到这一点?

ruby rake command-line command-line-arguments

1065
推荐指数
15
解决办法
33万
查看次数

耙子流产了!undefined方法`map':name:Symbol

我正在尝试将参数传递给Rake任务并访问我的模型,如" 如何将命令行参数传递给rake任务 "和" 执行rails rake任务提供对ActiveRecord模型的访问权限? "中所述.

但是添加=> :environment到此代码:

require 'rake'

namespace :genre do
    desc "Add a genre"
    task :add, :genre_id, :name => :environment do |t, args|
        puts args.name  
    end
end
Run Code Online (Sandbox Code Playgroud)

运行任务时给我这个错误:

rake genre:add['1','Abc']
rake aborted!
undefined method `map' for :name:Symbol

(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

如果我删除=> :environment它就可以了.


更新:

跟踪:

rake --trace genre:add['1','Abc']
rake aborted!
undefined method `map' for :name:Symbol
/Users/user/.rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:254:in `set_arg_names'
/Users/user/.rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task_manager.rb:29:in `define_task'
/Users/user/.rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task.rb:310:in `define_task'
/Users/user/.rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb:32:in `task'
/private/var/www/html/someapp.com/subdomains/someapp.heroku.com/someapp/lib/tasks/genre.rake:5:in `block in <top (required)>'
/Users/user/.rvm/gems/ruby-1.9.2-p318/gems/rake-0.9.2.2/lib/rake/task_manager.rb:207:in …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails-3

7
推荐指数
1
解决办法
8104
查看次数