lib/
我有 'aisis_writer/loader.rb' 的,即文件中,看起來像下:這是一個未初始化的常量。 (混入在軌)
module AisisWriter
module Loader
end
end
我再有,在我application.rb
以下設置:
require File.expand_path('../boot', __FILE__)
# Pick the frameworks you want:
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env)
module AisisWriter
class Application < Rails::Application
# Load Lib
config.autoload_paths += %W(#{config.root}/lib)
# Use Rack Attack For Throttling
config.middleware.use Rack::Attack
end
end
從那裏我做了,在ApplicationController.rb
:include AisisWriter::Loader
,然後我跑我的測試,並得到:
'<class:ApplicationController>': uninitialized constant AisisWriter::Loader (NameError)
要麼因爲命名衝突我做不了我所做的事情,要麼我做錯了什麼。任何人都在意告訴我我可能會做錯什麼?
每個Rails開發者在他們的職業生涯的Rails至少一次面對這個問題。這是一個非常棒的文章,它解釋了軌道自動加載。 http://urbanautomaton.com/blog/2013/08/27/rails-autoloading-hell/ –