0

我正在尝试编写一个简单的 RoR 应用程序,该应用程序列出特定路径中的所有目录,然后允许我单击该文件或目录以打开文件或打开目录。我正在使用以下代码列出目录,但我不知道如何从这里打开文件或目录。单击目录时,我收到“No route matches [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 回答