我在Sinatra上使用Mongoid。我用
Dir.glob(File.join(File.dirname(__FILE__),'models','*.rb')).each do |file|
require file
end
加载mongoid模型文件。
我尝试添加一个继承自A的模型B,如:
模型/ a.rb:
class A
include Mongoid::Document
include Mongoid::Timestamps
field :custom_id, type: Integer
end
模型/ b.rb
class B < A
field :title , type: String
field :body , type: String
end
但是当我执行App时,我遇到了错误:
uninitialized constant A (NameError)
所以我试图找到一个解决方案, 它可以通过添加来修复:
require A
在模型B的顶部,但我认为它可能不是解决它的好方法。
那么,有没有其他办法解决这个问题?
此致
答案 0 :(得分:1)
您只需要您定义类的文件。
Sinatra没有像rails这样的auto_load系统。因此,您需要满足所有需求。
require 'a'
class B < A
field :title , type: String
field :body , type: String
end