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

ディレクトリリンクをクリックすると、実際にリストがそのファイルで更新されますが、リンクにカーソルを合わせるとパスに余分な「output/」ディレクトリが表示されますが、html の href 属性には余分なパスがありません。余分なフォルダーがルート 0.0.0.0:3000 の一部と見なされるようなものです (0.0.0.0:3000/outputs のように)

4

1 に答える 1

0

redirect_to :action => :indexrender の代わりに使用することが解決策でした

于 2012-06-15T11:23:42.703 に答える