Mongoid名称空间模型,数据库中没有名称空间

时间:2013-12-18 18:45:24

标签: ruby-on-rails mongoid

我想知道是否有某种方法可以忽略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>

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:4)

Quoting the documentation

  

如果您希望它们在其他地方持久存储,则可以在类级别更改模型文档的集合。您还可以从默认值中更改模型保留的数据库和会话。

适用于您的案例

module Engine
  class Model
    include Mongoid::Document
    store_in collection: "models"
    field :field1
  end
end

该类无法更改,必须为Engine::Model,因为这是定义模型的位置。

相关问题