2013-03-18 96 views
0

我正在嘗試編寫一個簡單的RoR應用程序,列出特定路徑中的所有目錄,然後允許我單擊該文件或目錄以打開文件或打開目錄。我使用下面的代碼來列出目錄,但我無法弄清楚如何從這裏打開文件或目錄。當點擊該目錄,我得到一個「無路由匹配[GET]‘/選擇文件’錯誤ruby​​ on rails目錄瀏覽器

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

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

任何幫助,將不勝感激

+0

請在您的問題中包含config/routes.rb的路線。 – 2013-03-18 00:41:14

回答

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)) 

(請原諒我,如果這一切不工作直接-haven't時間充分測試充實解決方案現在 - 但我可以深入研究一下,如果您無法使其自行工作)。

+0

謝謝我將與此合作並讓你知道。感謝快速回復! – Robert 2013-03-18 00:57:18

+0

將您的目錄結構公開給惡意編碼器存在一些風險。即如果他們要傳遞該網站的其他區域的變量。您可能想考慮限制查詢的範圍 – muttonlamb 2013-03-18 04:44:32