2015-05-22 27 views
0

虽然crons.rake运行的任务,我得到这个错误:Rails任务命令和环境选择中的语法问题?

SyntaxError: /var/www/xyz/lib/tasks/crons.rake:12: syntax error, unexpected =>, expecting ')' 
task (:clean_database => :environment) do 

不明白这一点,因为我有很多其他的任务,在这个文件中,并没有错误...

第二个问题是我希望这个任务在开发和生产模式下运行,我该怎么做?

回答

1

你不应该使用括号:

task :clean_database => :environment do 

task clean_database: :environment do 

如果你绝对必须(:))使用括号,从来不把方法以及它们之间的空间:

task(clean_database: :environment) do 

因为如果你放置空间,Ruby不会将方括号的内容解释为方法参数,而是作为expr分裂国家。并且这个表达式

(:clean_database => :environment) 

对它没有意义。

+0

谢谢,为什么我不使用它们? – Felix

+2

@Felix你可以,但是你不应该在方法调用和括号之间加空格。 Ruby不会将此解释为方法参数,但作为表达式和“(:clean_database =>:environment)”表达式是没有意义的。这就是为什么你会得到语法错误。 –