3

我在ruby中做了一个脚本,现在我需要在一个rails应用程序中运行它。我有点迷茫,但我有一个控制器,并希望通过 GET /service /:id 返回此脚本的结果。我怎样才能做到这一点?

4

2 回答 2

4

根据评论,您似乎想将其变成可以从控制器调用的方法。

简单的。

在相应模型中为您调用它的控制器定义方法(或您希望在其中定义方法的任何模型),然后从控制器调用它。

假设您有一个 ScriptRunner 模型,并且您想从某个控制器的显示操作中调用它。

在您的 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 方法是正确的,只需从中创建一个模型类并从控制器调用模型方法。

或者,这是错误和hacky,您可以直接从控制器调用您的ruby脚本

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