0

特定のパス内のすべてのディレクトリを一覧表示し、そのファイルまたはディレクトリをクリックしてファイルを開くかディレクトリを開くことができる単純な RoR アプリを作成しようとしています。ディレクトリを一覧表示する次のコードを使用していますが、ここからファイルまたはディレクトリを開く方法がわかりません。ディレクトリをクリックすると、「No route match [GET] "/selected file"」というエラーが表示されます。

controller
    @file = Dir.foreach ("/specifiedpath/")

view
<% @file.each do |file| %> 
    <tr>
        <td><%= link_to file, file %></td>
    </tr>
<% end %> 

どんな助けでも大歓迎です!

4

1 に答える 1

0

routes.rb次のようなものが必要です。

get '/browse/*path' => 'browse#show', as: :browse

では、次のようなアクションがbrowse_controller必要になります。show

class BrowseController < ApplicationController

  def show
    @path = params[:path] || '/some/default'
    @files = Dir.foreach(path)
  end

最後に、あなたのbrowse/show.html.haml(私は HAML の方が好きです、ごめんなさい) ビューでは、次のようなものです:

- @files.each do |file|
  %tr
    %td= link_to file, browse_path(File.join(@path, file))

(完全に機能しない場合はご容赦ください。具体的なソリューションを今すぐ完全にテストする時間はありませんが、自分で機能させるのに問題がある場合は、もう少し掘り下げることができます。)

于 2013-03-18T00:49:24.407 に答える