我想学习如何为我的rails 3应用程序构建一个rake任务,它可以做两件事。
以上步骤的命令:
rake cache:s3
heroku jammit:deploy --app #{app}
这是我的/lib/tasks/deployer.rake
task :deployit do
puts '=== Storing assets on s3 ==='
run "rake cache:s3"
puts '=== Deploying to Heroku ==='
run "heroku jammit:deploy --app #{app}"
end
def run(cmd)
shell cmd
if $?.exitstatus == 0
display "[OK]"
else
display "[FAIL]"
end
end
但是对于main:Object'
,'undefined method`hell'的错误关于如何使这项工作的建议?这应该是一项任务还是其他什么?
由于
答案 0 :(得分:2)
请改用system命令。有关详细信息:http://blog.jayfields.com/2006/06/ruby-kernel-system-exec-and-x.html
答案 1 :(得分:2)
第一个任务是另一个rake任务,如果它是:deployit
任务的依赖项,它将运行。你当前的代码会加载rake两次。
如果你使用像Arun这样的系统,你会得到:
task :deployit => 'cache:s3' do
puts '=== Deploying to Heroku ==='
system "heroku jammit:deploy --app #{app}"
end