Ruby on rails Ruby Rails库文件夹命名约定

Ruby on rails Ruby Rails库文件夹命名约定,ruby-on-rails,naming-conventions,Ruby On Rails,Naming Conventions,我似乎对Rails中Lib文件夹的命名约定有问题,提供给我的错误消息也没有帮助。[例如,我收到一条消息,说XXX::YYY::TextBox应该定义为XXX/YYY/text_box.rb,尽管它在那里定义得很清楚。]我认为我的约定是错误的 假设我正在处理YourModule::MyModule::MyClass。我清楚地知道这个文件应该在 lib/your_module/my_module/my_class.rb 但是这里的实际文件应该是什么样的呢?以下哪一项(如果有)是正确的 #your_m

我似乎对Rails中Lib文件夹的命名约定有问题,提供给我的错误消息也没有帮助。[例如,我收到一条消息,说XXX::YYY::TextBox应该定义为XXX/YYY/text_box.rb,尽管它在那里定义得很清楚。]我认为我的约定是错误的

假设我正在处理YourModule::MyModule::MyClass。我清楚地知道这个文件应该在

lib/your_module/my_module/my_class.rb

但是这里的实际文件应该是什么样的呢?以下哪一项(如果有)是正确的

#your_module/my_module/my_class.rb
module YourModule
  module MyModule
    class MyClass
       ...
    end
  end
end


换句话说,我是否需要将类嵌套在模块结构中?

lib文件夹没有什么约定,因为它不是自动加载的。因此,如何组织文件取决于您,但您必须正确命名类。你的第一个例子是正确的

要获取包含的文件,需要在application.rb文件中指定所需的文件,请参见以下示例:

我建议创建一个名为
lib/modules
的文件夹,因为您可能没有太多。命名文件
my_class.rb
。然后在
application.rb
中,您需要:

config.autoload_paths += %W(#{config.root}/lib/modules)
那会解决你的问题

config.autoload_paths += %W(#{config.root}/lib/modules)