ruby-on-rails – 将哈希作为参数传递给Rake任务

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 将哈希作为参数传递给Rake任务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个佣金任务
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结尾…

猜你在找的Ruby相关文章