命名空间在app下的自定义目录中?

时间:2017-01-19 17:40:49

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-5

我想在app下创建一个自定义目录,并且有一个相应的命名空间,如:

app/my_widgets

#app/my_widgets/foo
module MyWidgets
  class Foo
     #...
  end
end

这不起作用。

LoadError: Unable to autoload constant Foo, expected /project_dir/app/my_widgets/foo.rb to define it.

我在打电话:

MyWidgets::Foo.new()

我猜这可能是因为rails从app/的子目录中自动加载常量...但是,添加:

config.autoload_paths += %W{#{config.root}/app"}

不按照我的想法修复它。这是一个失败的原因吗?

我尝试将my_widgets/移动到其他地方,例如app下的'services /',然后一切都按预期工作。

有没有办法拥有命名空间&直接在app/下的相应目录?

0 个答案:

没有答案