Rails 3在"lib"目录中看不到我的类

Sim*_*tsa 2 ruby-on-rails ruby-on-rails-3

我在目录中放置了rack_app.rb带有简单Rack应用程序的lib文件:

class RackApp
  def call env
    [200, {}, 'Hello']
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我添加了这条路线:

match 'rack' => RackApp
Run Code Online (Sandbox Code Playgroud)

当我尝试启动rails服务器时,我收到以下错误:

config/routes.rb:65: uninitialized constant RackApp (NameError)

shi*_*ara 9

Rails 3默认没有自动加载.所以你需要你的文件

require 'lib/rack_app.rb'
Run Code Online (Sandbox Code Playgroud)

或者在application.rb中返回自动加载

config.autoload_paths += %W( #{config.root}/lib )
Run Code Online (Sandbox Code Playgroud)