2012-05-06 85 views
3

我在ruby中創建了一個腳本,現在我需要在rails應用程序中運行腳本。我有點迷路,但我有一個控制器,並希望通過GET/service /:id返回此腳本的結果。我怎樣才能做到這一點?在rails中運行ruby腳本

+4

難道你不能讓它成爲一門課,然後將它作爲環境的一部分加載並使用? –

+0

如果你不想做@SergioTulentsev解決方案,你總是可以使用exec http://mentalized.net/journal/2010/03/08/5_ways_to_run_commands_from_ruby運行腳本(但他的解決方案更好) –

+0

我看到我有在rails中沒有什麼基礎,最好的方法是在助手中創建一個方法,然後運行它是否正確?編輯:我只看到助手只適用於意見!對於控制器? –

回答

4

只是打電話給你的Ruby腳本通過的意見,好像你要製作成可以從您的控制器調用一個方法這一點。

簡單。

定義相應模型中您要調用的控制器的方法(或者您希望定義方法的任何模型),然後從控制器中調用它。

假設你有一個ScriptRunner模型,並且你想從某個控制器的show動作中調用它。

在你ScriptRunner模式,簡單地做

def runscript(id) 
... 
end 

,並在你的控制器,做

def show 
    ScriptRunner.runscript(params[:id]) 
    @service = Service.find_by_id(params[:id]) 
end 

任何你想要它做的..或。

+0

非常感謝你! –

2

Sergio Tulentsev的方法是正確的,只需將模型類從它中取出並從您的控制器中調用模型方法即可。

或者是錯誤的,哈克就可以直接從控制器

def get 
    @results = system "ruby your_ruby_script.rb" 
end