Aar*_*ler 2 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
Run Code Online (Sandbox Code Playgroud)
这是我执行时控制台中发生的情况 Engine::Model.all
=> #<Mongoid::Criteria
selector: {}
options: {}
class: Engine::Model
embedded: false>
Run Code Online (Sandbox Code Playgroud)
如果我能做到让 mongoid 寻找Model它,它就会完美地处理我的数据。
理想情况下,我能够做到Engine::Model.all,它会返回这个
=> #<Mongoid::Criteria
selector: {}
options: {}
class: Model
embedded: false>
Run Code Online (Sandbox Code Playgroud)
有什么办法可以做到这一点吗?
引用文档:
如果您希望将模型文档的集合保留在其他地方,则可以在类级别更改模型文档的集合。您还可以更改模型从默认值中持久化的数据库和会话。
适用于您的案例
module Engine
class Model
include Mongoid::Document
store_in collection: "models"
field :field1
end
end
Run Code Online (Sandbox Code Playgroud)
类不能改变,一定是Engine::Model因为这是定义模型的地方。
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |