我有一个佣金任务
task :post_hit,[:host,:title,:description,:model,:num_assignments,:reward,:lifetime,:qualifications,:p,:opts] => :environment do |t,args|
:p需要是一个哈希,但如果我尝试:
rake turkee:post_hit["http://www.staging.collegesportsbluebook.com","LS Info","Fill In Player First Name","MechanicalTurk",100,0.01,2,{},{id: 5},{}]
它错误地说id:无法解析(空间似乎做了什么).
如果我试过:
rake turkee:post_hit["http://www.staging.collegesportsbluebook.com",{"id: 5"},{}]
字符串“id:5”被解释为单个字符串.
我们不允许通过哈希来耙任务吗?
解决方法
当您通过终端发出rake任务时,您处于UNIX或Bash环境中,因此您需要遵守该语言的规则,据我所知,该规则不包括哈希.我可能错了.
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html#toc5
这并不意味着编写rake任务的人没有做一些聪明的事情来将字符串解析成哈希.如果我是你,并试图找出它,我会看看源代码,看看该rake任务如何解析它的变量.
PS.如果它是你正在使用的gem并且你也在使用bundler,你可以发出bundle open gem_name来打开源代码,rake任务通常以.rake结尾…