我有一些自定义中间件包含在我的堆栈顶部,我需要在其中做的是访问 rails 缓存。如何从中间件加载/访问 rails 缓存而不必先加载整个 rails 应用程序?
问问题
166 次
2 回答
1
Rails on Rack Rails 应用程序的机架对象
ApplicationName::Application 是 Rails 应用程序的主要 Rack 应用程序对象。任何兼容 Rack 的 Web 服务器都应该ApplicationName::Application object
用于为 Rails 应用程序提供服务。Rails.application 指的是同一个应用程序对象。导轨服务器
rails server 完成创建 Rack::Server 对象和启动 webserver 的基本工作。
下面是 rails server 如何创建 Rack::Server 的实例
Rails::Server.new.tap do |server|
require APP_PATH
Dir.chdir(Rails.application.root)
server.start
end
Rails::Server 继承自 Rack::Server 并以这种方式调用 Rack::Server#start 方法:
class Server < ::Rack::Server
def start
...
super
end
end
以下是它加载中间件的方式:
def middleware
middlewares = []
middlewares << [Rails::Rack::Debugger] if options[:debugger]
middlewares << [::Rack::ContentLength]
Hash.new(middlewares)
end
礼貌: http ://guides.rubyonrails.org/rails_on_rack.html ,你也可以关注:https ://devcenter.heroku.com/articles/rack-cache-memcached-rails31
于 2014-01-08T16:47:36.797 回答
0
我刚刚做了一个测试,然后
Rails.cache.fetch('test') { 'A test' }
在自定义中间件内部,它工作得很好。
你能试试吗?
于 2014-01-08T16:47:29.017 回答