2011-07-31 86 views
1

外部命令我有這行代碼:運行在軌道模型

output = `rails_best_practices /home/jordi/src/adventureManager/app` 

當我運行,在內部評級法,或內部的任何.RB我叫紅寶石輸出.RB得到一些內容。

但是,當我在我的模型裏面調用它時,會得到一個空字符串。

output = `cat /home/jordi/src/adventureManager/app/*` 

而是其他命令將工作無處不在,包括內部模型 我很無能這個問題

回答

4

什麼rails_best_practices?它在你的道路上嗎?我的猜測是,當你在模型中運行命令時,你得到了一個沒有發現stderr的命令。

+0

你是對的。問題是rails_best_practices是一個gem,我已經在全局安裝,但是我沒有在我的Gemfile中爲那個rails項目。這很不方便,因爲我正在運行的命令可以在部署後進行配置。所以任何時候有人可以拿出一個不包含在Gemfile中的命令,這個應用就會崩潰,關於如何解決這個問題的任何想法? – Jordi

+1

你應該真的把你的gem文件作爲你的項目的一部分,這樣在你的項目上工作的每個人都使用相同的gem文件 –

1

或者你可以嘗試使用類似從您的應用程序根目錄下:

output = `bundle exec rails_best_practices /home/jordi/src/adventureManager/app` 

祝你好運!

+0

問題來了,我把rails_best_practices安裝爲系統中的gem,但它不在gemfile中,當我添加到gem文件時,它按預期工作。但我真的希望它能夠在不需要指定任何東西的情況下工作 – Jordi