我将模块移到了
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
和第二个以同样的方式 在Rspec中要求模块的最佳方法是什么?
答案 0 :(得分:2)
需要模块的最佳方法是什么
使用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 ...