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