2013-03-18 2 views
0

나는 특정 경로의 모든 디렉토리를 나열하는 간단한 RoR 응용 프로그램을 작성하려고하는데 그 파일이나 디렉토리를 클릭하여 파일을 열거 나 디렉토리를 열 수 있습니다. 디렉터리를 나열하는 작동하는 다음 코드를 사용하고 있지만 여기에서 파일이나 디렉터리를 여는 방법을 알아낼 수 없습니다. 디렉토리를 클릭하면 나는/선택한 파일 "오류"어떤 경로 일치 [얻을] "를 얻을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의 경로를 포함하십시오. –

답변

0

당신은 다음과 같습니다 당신의 routes.rb에 뭔가가 필요합니다.!

class BrowseController < ApplicationController 

    def show 
    @path = params[:path] || '/some/default' 
    @files = Dir.foreach(path) 
    end 
,536 : 당신의 browse_controller에서
get '/browse/*path' => 'browse#show', as: :browse 

, 당신은 같은 일을 수행하는 show 조치를 할 것 에서 마지막으로

, 당신의 browse/show.html.haml보기, 같은 (내가 HAML, 미안 선호) :

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

(모든 것이 완벽하게 구체화 솔루션을 테스트하기 위해 철처 haven't 시간을 작동하지 않을 경우 실례 지금 당장은 문제가 해결되지 않으면 조금 더 자세히 조사 할 수 있습니다.

+0

감사의 말씀을 드리며 알려 드리겠습니다. 빠른 답장을 감사드립니다! – Robert

+0

악의적 인 코드 작성자에게 디렉토리 구조를 노출시키는 데는 몇 가지 위험이 있습니다. 즉 사이트의 다른 영역에 대한 변수를 전달할 것인지를 결정합니다. 당신은 아마 쿼리의 범위를 제한하는 것에 대해 생각하고 싶을 것이다. – muttonlamb