从Rails应用程序控制器中调用ruby脚本
我对rails非常陌生,我有一个脚本,可以像这样从控制台运行
$ ruby axml2xml.rb ExamPaper.apk
现在,我如何从我的控制器方法中调用这个脚本并传递与ExamPaper.apk
相同的参数?
我试过require 'axml2xml.rb'
但是有一些错误指向这行代码Zip::ZipFile.foreach(ARGV[0]) do |f|
。 所以基本上,我如何使我的控制器中的axml2xml.rb 'ExamPaper.apk'
东西?
你至少有3个选择:
exec(command)
%x{ command }
system(command)
他们有不同的行为,因此请务必阅读此快速提示和/或此问题的答案以了解有关这些命令的更多信息。
在你的情况下,反引号或%x
命令可能是最好的选择。
value = `ruby axml2xml.rb ExamPaper.apk`
您可以尝试使用system
或popen
,但仅限于短期任务,有关更多信息,请参阅此处。
如果你的任务比较费时,你肯定应该看看诸如delayed_job之类的东西,并使用后台作业或某种队列来运行你的工作。 这样,您的服务器不会被阻止,并且用户无需等到作业完成即可。
如果您想将其作为shell命令执行,请使用:
exec 'ruby axml2xml.rb ExamPaper.apk'
链接地址: http://www.djcxy.com/p/25303.html
上一篇: Call a ruby script from within a rails app controller
下一篇: How can an external command return both its output and its exit status to Ruby?