我写了一个简单的Rack模块,我把它放在一个名为rack_gist.rb
的文件中。在config.ru
文件的某处,我使用use Rack::Gist
来调用该模块。我知道该模块有效,我知道use Rack::Gist
放在正确的位置,因为当我将rack_gist.rb
中存在的代码放在config.ru
文件的顶部时,一切都运行正常。
我正在使用Rails 3.2.2。我想在rack_gist.rb
文件中分隔模块的代码,因此我在config.middleware.use Rack::Gist
文件中添加了行config/application.rb
。我的问题是:我现在应该把rack_gist.rb
文件放在哪里?我应该在任何地方需要什么吗?
为了更清楚,这是我的模块
module Rack
class Gist
def initialize(app)
@app = app
end
def call(env)
status, @headers, response = @app.call(env)
if html?
#do something I don't want to bother you with
end
[status, @headers, response]
end
private
def html?
@headers["Content-Type"].include? "text/html"
end
end
end
答案 0 :(得分:1)
lib/rack_gist.rb
将lib initilizer添加到初始化程序
#config/initializers/lib_loader.rb
Dir[File.expand_path(File.join(Rails.root.to_s,'lib','*.rb'))].each {|f| require f}
然后您的模块可以将其添加到配置中。