asc*_*man 6 ruby ruby-on-rails
我有这门课:
# app/events/new_request.rb
class Events::NewRequest
end
Run Code Online (Sandbox Code Playgroud)
我将该文件夹添加到自动加载:
# config/application.rb
config.autoload_paths += %W( events/ )
Run Code Online (Sandbox Code Playgroud)
运行时rails c:
> Events::NewRequest
NameError: uninitialized constant Events
Run Code Online (Sandbox Code Playgroud)
问题是如果我在定义类时不使用名称空间"Events",它会成功自动加载类.
module Sandbox
class Application < Rails::Application
config.autoload_paths += [config.root.join('app')]
end
end
Run Code Online (Sandbox Code Playgroud)
这将使 Rails 自动Events::NewRequest从app/events/new_request.rb.
irb(main):001:0> Events
=> Events
irb(main):002:0> Events::NewRequest
=> Events::NewRequest
Run Code Online (Sandbox Code Playgroud)