我正在尝试编写一个简单的RoR应用程序,列出特定路径中的所有目录,然后允许我单击该文件或目录以打开文件或打开目录。我正在使用以下代码列出目录,但我无法弄清楚如何从这里打开文件或目录。单击目录时,我收到“无路由匹配[GET]”/选择文件“错误。
controller
@file = Dir.foreach ("/specifiedpath/")
view
<% @file.each do |file| %>
<tr>
<td><%= link_to file, file %></td>
</tr>
<% end %>
任何帮助将不胜感激!
答案 0 :(得分: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))
(原谅我,如果这一切都没有成功 - 没有时间来完全测试一个充实的解决方案 - 但如果你自己无法让它自己工作,我可以再深入研究一下。)< / p>