我想知道是否有某种方法可以忽略Mongoid的模型命名空间。我正在将我的所有模型移动到rails引擎,并将它们命名为间距。我已经能够将它们添加到没有命名空间的rails引擎中,并且引用很好,但我们正在努力转向面向服务的体系结构,我想命名所有模型。
以下是
之前和之后的示例模型# Before
class Model
include Mongoid::Document
field :field1
end
# After
module Engine
class Model
include Mongoid::Document
field :field1
end
end
以下是我执行Engine::Model.all
=> #<Mongoid::Criteria
selector: {}
options: {}
class: Engine::Model
embedded: false>
如果我能够让mongoid只查找Model
,那么它就会非常喜欢我的数据。
理想情况下,我可以执行Engine::Model.all
并返回此
=> #<Mongoid::Criteria
selector: {}
options: {}
class: Model
embedded: false>
有没有办法实现这个目标?
答案 0 :(得分:4)
如果您希望它们在其他地方持久存储,则可以在类级别更改模型文档的集合。您还可以从默认值中更改模型保留的数据库和会话。
适用于您的案例
module Engine
class Model
include Mongoid::Document
store_in collection: "models"
field :field1
end
end
该类无法更改,必须为Engine::Model
,因为这是定义模型的位置。