我应该在哪里添加一个Rack模块(确切的类)我写的? (导轨)

时间:2012-04-08 13:25:30

标签: ruby-on-rails rack

我写了一个简单的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

1 个答案:

答案 0 :(得分:1)

imho,这就是你能做的。 将代码放入lib目录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}

然后您的模块可以将其添加到配置中。