如何在自定义中间件中使用Devise授权

时间:2013-04-05 07:00:56

标签: mongodb devise ruby-on-rails-3.2 mongoid gridfs

我有用于提供mongodb文件的中间件

#serve_gridfs_file.rb
class ServeGridfsFile
  def initialize(app)
    @app = app
  end

  def call(env)
    if env["PATH_INFO"] =~ /^\/grid\/(.+)$/
      process_request(env, $1.force_encoding("UTF-8"))
    else
      @app.call(env)
    end
  end

  private  
  def process_request(env, key)
    begin
      Mongo::GridFileSystem.new(Mongoid.database).open(key, 'r') do |file|
        [200, { 'Content-Type' => file.content_type }, [file.read]]
      end
    rescue
     [404, { 'Content-Type' => 'text/plain' }, ['File not found.']]
    end
  end
end

我想使用Devise功能来获取current_user。之后,我可以使用一些验证。但是我不知道如何以简单的方式做到这一点。

0 个答案:

没有答案