2012-08-12 112 views
0

Rails不会从我的控制器发出rake命令,因为它找不到rake。我知道这一点,因为我在我的开发环境中经历了这一点,并通过给它提供耙子的绝对路径来修复它。但是,此解决方案不适用于我的生产环境。Rails无法执行rake任务

事情我知道:

  1. 我可以运行rake任务ROM CLI
  2. 我可以通过与IRB运行:系统 “回扣......”
  3. 我无法找到任何错误!

犁耙:

/usr/lib/ruby/1.9.1/rake 
/usr/lib/ruby/gems/1.9.1/bin/rake 
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake 
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.2/bin/rake 
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake 
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake 
/usr/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake 
/usr/lib/ruby/gems/1.9.1/gems/rake-0.8.7/bin/rake 
/usr/bin/rake 
/var/lib/gems/1.8/bin/rake 
/var/lib/gems/1.8/doc/rake-0.9.2.2/rdoc/lib/rake 
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake 
/var/lib/gems/1.8/gems/rake-0.9.2.2/bin/rake 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake 
/var/lib/gems/1.8/gems/rake-0.8.7/bin/rake 
/var/lib/gems/1.8/gems/sprockets-2.3.1/lib/rake 

如何在赫克去有关解决此???

+1

你为什么试图从你的控制器中调用'rake'任务?对于Rails应用程序来说,这是非常非典型的事情。 – meagar 2012-08-12 18:58:05

+0

您可以添加用例的代码,在控制器中使用耙子... – 2012-08-12 19:02:17

+0

嘿米格尔,我知道这不是祝福的方式,但它在我的情况下是有道理的。我试图在这里解决和理解的问题是为什么我不能在我的生产环境中从Rails调用我的Rake任务。我正在使用 - > system“#{SITE_rake_path}#{task}#{args.join('')} >>#{Rails.root} /log/rake.log&”。一旦我得到正确的耙路径,在我的开发中工作。但不幸的是没有在生产(dev = lucid32,prod = debian) – Kevin 2012-08-12 19:11:59

回答

0

我在生产中调用的rake任务失败,因为我试图将其内容转储到禁用记录器的日志中。

system "rake invite INVITE_ID=5 RAILS_ENV=production >> /root/log/rake.log &" 

感谢您的帮助......抱歉,因为太模糊了。我只是在寻找快速反应,希望我做了一些愚蠢的事情。我是谁。我发誓我没有日志条目尝试它......可能像我一直这样做太快。

此外,只是为了回答几个问题。我使用的rake任务是一个内部工具,我使用自己进行一些维护,并且只是简单地将该任务卸载到使用我构建的应用程序的同事。没有必要使用调度程序将其工业化,等等......

+0

你用什么方法从控制器执行rake命令?我正在试图用除耙子以外的其他宝石做类似的事情? http://stackoverflow.com/questions/14011404/call-a-rubygems-binary-executable-from-inside-my-rails-applications – holaSenor 2012-12-23 13:43:57