【发布时间】:2016-06-15 06:32:08
【问题描述】:
我在我的 Sinatra 应用程序之外的文件夹中有一个 Ruby 脚本,我想通过单击按钮来运行它。
这是 app.rb 文件:
require 'sinatra'
get '/' do
erb :home
end
get '/launch_script' do
system("ruby path\\to\\file\\delete_rows_csv.rb")
end
这是 home.erb 文件:
<a href='/launch_script'> Launch a Script </a>
我应该加载文件路径还是需要文件才能使其工作?
这是一个很好的解决方案:
require 'sinatra'
get '/' do
erb :home
end
get '/launch_script' do
load 'path\\to\\file\\delete_rows_csv.rb'
end
【问题讨论】:
-
不要使用
ruby path/to/file。使用要运行代码的 Ruby 解释器的绝对路径。否则,系统必须搜索环境 PATH 才能找到它,如果 PATH 不包括 Ruby 所在的位置,则该命令将失败。通常不会在 Web 服务器上设置适当的路径,因为服务器以受限用户身份运行。 -
同意,但为了不在帖子中发布我的绝对路径,我将其省略了。
标签: ruby windows google-chrome sinatra