在试图弄清楚如何让Carrierwave + Mongoid + gridfs在Padrino(Carrierwave + Mongoid + gridfs + Padrino admin image upload)中工作时,我遇到了一些Rails代码看起来可能会起作用,如果我可以让它工作的话在帕德里诺。
假设你有一个类在rails中扩展了ApplicationController,你想在padrino app + admin中使用...你会在哪里保留它,你会如何声明它?
#app/controllers/gridfs_controller.rb
class GridfsController < ApplicationController
def serve
gridfs_path = env["PATH_INFO"].gsub("/upload/grid/", "")
begin
gridfs_file = Mongoid::GridFS[gridfs_path]
self.response_body = gridfs_file.data
self.content_type = gridfs_file.content_type
rescue
self.status = :file_not_found
self.content_type = 'text/plain'
self.response_body = ''
end
end
end
“serve”应该在主应用程序以及padrino管理员中可用。
这是一个当前状态的回购:https://github.com/bcsantos/debug