0

我正在尝试显示目录​​中文本文件的链接列表(在 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 中)

4

1 回答 1

0

使用redirect_to :action => :index而不是渲染是解决方案

于 2012-06-15T11:23:42.703 回答