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结尾…

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...