我正在尝试显示目录中文本文件的链接列表(在 index.html 中),以下载文件。在有子目录的地方,我希望它的链接刷新索引页面并列出该子目录中的文件(作为下载链接)。
我的 file_transfers/index.html.erb 有:
<%- output_dir ||= 'outputs/' %>
<%- Dir.foreach(output_dir) do |f| %>
<%= link_to f, output_dir + f %>
<%- end %>
我在 config/routes.rb 中的最后一条路线是:
match ':file_dir/:file_name' => 'file_transfers#show'
控制器:
def show
file = params[:file_dir] + '/' + params[:file_name]
file += ".#{params[:format]}" if params[:format]
if File.directory?(file)
render :index, :locals => {:output_dir => file + '/'}
else
send_file params[:file_dir] + '/' + params[:file_name], :type => "text/csv"
render :index
end
end
当我单击目录链接时,它确实会刷新列表及其文件,但是当我将鼠标悬停在链接上时,链接会在路径中显示一个额外的“输出/”目录,但 html 中的 href attr 没有额外的路径。就像额外的文件夹被视为根 0.0.0.0:3000 的一部分(如 0.0.0.0:3000/outputs 中)