提交 b5fe014f 编写于 作者: X Xavier Noria

files in the lib directory are no longer autoloaded

Conceptually, the lib directory is closer 3rd party libraries
than to the application itself. Thus, Rails adds it to Ruby's
load path ($LOAD_PATH, $:) but it is no longer included in
dependencies' load paths.

To enable autoloading back put this in your config/application.rb

  config.load_paths += %W( #{config.root}/lib )
上级 69fec3ab
......@@ -20,15 +20,19 @@ def paths
paths.app.models "app/models", :eager_load => true
paths.app.mailers "app/mailers", :eager_load => true
paths.app.views "app/views"
paths.lib "lib", :load_path => true
paths.lib "lib"
paths.lib.tasks "lib/tasks", :glob => "**/*.rake"
paths.config "config"
paths.config.initializers "config/initializers", :glob => "**/*.rb"
paths.config.locales "config/locales", :glob => "*.{rb,yml}"
paths.config.routes "config/routes.rb"
paths.public "public"
paths.public.javascripts "public/javascripts"
paths.public.stylesheets "public/stylesheets"
paths
end
end
......
......@@ -19,7 +19,7 @@ def setup
assert $:.include?("#{app_path}/app/models")
end
test "initializing an application allows to load code on lib path inside application class definitation" do
test "initializing an application allows to load code on lib path inside application class definition" do
app_file "lib/foo.rb", <<-RUBY
module Foo; end
RUBY
......@@ -60,6 +60,8 @@ module Zoo::ReptileHouse ; end
add_to_config <<-RUBY
config.root = "#{app_path}"
config.cache_classes = true
config.load_paths << "#{app_path}/lib"
config.eager_load_paths << "#{app_path}/lib"
RUBY
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册