3

Ruby で作成したスクリプトを Rails アプリケーションで実行する必要があります。私は少し迷っていますが、私はコントローラーを持っており、GET /service /:id を介してこのスクリプトの結果を返したいと思っています。これどうやってするの?

4

2 に答える 2

4

コメントによると、これをコントローラーから呼び出せるメソッドにしたいようです。

単純。

呼び出し元のコントローラー (またはメソッドを定義する任意のモデル) に対応するモデルでメソッドを定義し、コントローラーから呼び出します。

ScriptRunner モデルがあり、これをコントローラーの show アクションから呼び出したいとします。

ScriptRunner モデルでは、単純に次のようにします。

def runscript(id)
...
end

そしてあなたのコントローラーで、

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

..またはあなたがやりたいことは何でも。

于 2012-05-06T17:30:07.933 に答える
2

Sergio Tulentsev のアプローチは正しいです。それからモデル クラスを作成し、コントローラーからモデル メソッドを呼び出すだけです。

または、どちらが間違っていてハッキーなのか、コントローラーから直接ルビースクリプトを呼び出すことができます

def get
  @results = system "ruby your_ruby_script.rb" 
end
于 2012-05-06T17:21:13.507 に答える