gpt4 book ai didi

ruby-on-rails - Mongoid 命名空间模型,数据库中没有命名空间

转载 作者:行者123 更新时间:2023-12-02 21:39:40 25 4
gpt4 key购买 nike

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

有什么办法可以实现这一点吗?

最佳答案

Quoting the documentation :

The collection for the model's documents can be changed at the class level if you would like them persisted elsewhere. You can also change the database and session the model gets persisted in from the defaults.

适用于您的案例

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

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

关于ruby-on-rails - Mongoid 命名空间模型,数据库中没有命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20665990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com