如何在rails中列出目录文件夹

时间:2017-12-03 19:01:30

标签: ruby-on-rails

嗨,我是rails的新手,想要知道任何方式列出文件夹和文件的网址说公开。所以示例用户类型example.com/public如果我们启动一个wamp服务器,他会获得我们在php中列出的所有文件夹和文件。我需要这个,所以我可以创建文件并将他们的网址分享给公众,即只需在线发送网址链接,例如example.com/public/test.pdf。目前我正在获取没有定义路由的页面。enter image description here 感谢。

1 个答案:

答案 0 :(得分:0)

使用路径参数创建一个控制器来提供文件,例如

get '/public/:filename', to: 'file#serve'

然后在控制器中使用send_file方法。

class FileController < ApplicationController
    def serve
        # For authorization:
        #authorize!

        # For authentication: (a way or another)
        #redirect_to :access_denied unless user_signed_in?

        send_file "/www/yourapp/var/files/#{params[:filename]}"
    end
end

这样,文件可以位于应用内的任何位置,甚至可以存储在云存储中。它还使您能够使用身份验证或授权来检查用户是否有权访问。

请注意,此代码非常简单,但还有更多选项,例如Fog gem for Cloud存储以及其他所有选项。

有关详细信息,请参阅https://apidock.com/rails/ActionController/Streaming/send_file