2012-08-12 111 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