【发布时间】:2015-01-28 18:21:53
【问题描述】:
我很好奇为什么我的args 变量在以下任务中总是以{} 的形式返回:
desc "Create an Api Key assuming one doesn't exist."
task :create_api_key, [:name] => :environment do | t, args |
if !ApiKey.find_by_application_name(args[:name])
binding.pry
if ApiKey.new(:application_name => args[:name], :api_key => SecureRandom.hex(32)).save!
puts "Your key is: " + ApiKey.find_by_application_name(args[:name]).api_key
else
puts "Could not create the api key, you might be missing an argument: Application Name."
end
else
puts "This application already contains an api key."
end
end
以下是任务的运行(注意binding.pry):
$ bin/rake create_api_key "xaaron_test"
From: /Users/Adam/Documents/Rails-Projects/BlackBird/lib/tasks/create_api_key.rake @ line 4 :
1: desc "Create an Api Key assuming one doesn't exist."
2: task :create_api_key, [:name] => :environment do | t, args |
3: if !ApiKey.find_by_application_name(args[:name])
=> 4: binding.pry
5: if ApiKey.new(:application_name => args[:name], :api_key => SecureRandom.hex(32)).save!
6: puts "Your key is: " + ApiKey.find_by_application_name(args[:name]).api_key
7: else
8: puts "Could not create the api key, you might be missing an argument: Application Name."
9: end
[1] pry(main)> args
=> {}
即使我这样做 bin/rake create_api_key xaaron_test 我也会遇到同样的问题。到底是怎么回事?是不是有一些我忘记的小错误?
更新
我还吐出t 看看里面有什么:
pry(main)> t
=> <Rake::Task create_api_key => [environment]>
【问题讨论】:
标签: ruby-on-rails ruby rake rake-task rakefile