Ruby on rails 如何要求app/lib文件夹中的模块在Rails 5中rspec

Ruby on rails 如何要求app/lib文件夹中的模块在Rails 5中rspec,ruby-on-rails,ruby,rspec,ruby-on-rails-5,Ruby On Rails,Ruby,Rspec,Ruby On Rails 5,我把我的模块移到了 app/lib/parsers 文件夹 模型类响应模块方法,但当我尝试 rspec I have issue Failure/Error: include MainModule::Submodule NameError: uninitialized constant ModelName::MainModule module in lib/parsers looks like this Module Parsers Module Parser1 def f

我把我的模块移到了

app/lib/parsers
文件夹

模型类响应模块方法,但当我尝试

rspec
I have issue

Failure/Error: include MainModule::Submodule

NameError:
uninitialized constant ModelName::MainModule

module in lib/parsers looks like this

Module Parsers
  Module Parser1
    def foo
    end
end
  Module Parser2

   def bar
   end
 end
end
通过这种方式,第一个模型包括第一个解析器

Class Model1 < ApplicationRecord
  include Parsers::Parser1
end
Class Model1
第二个也是这样 在Rspec中,要求安装模块的最佳方式是什么

要求这些模块的最佳方式是什么

使用rails的自动加载机制。将您的
Parsers::Parser1
放到
app/lib/Parsers/Parser1.rb
Parsers::Parser2
放到
app/lib/Parsers/Parser2.rb
。查看模块的全名如何反映其存储位置?rails就是这样找到它的

或者您可以显式地要求该文件

# my_spec.rb
require_dependency Rails.root.join('app', 'lib', 'parsers')

RSpec.describe ... 

如果FQN与路径匹配,则应自动加载它们,而无需任何附加步骤。显示一些代码(模块,它所在的路径以及如何包含它)添加了一些代码第二个代码很有用,非常感谢。第一个不是。@zOs0:但是第一个是你应该走的路。rails指南中有一个红色的大警告:“应该很少需要
require\u dependency
。类名和文件路径应该匹配”。