gpt4 book ai didi

ruby-on-rails - mongoid - 覆盖现有字段警告

转载 作者:可可西里 更新时间:2023-11-01 09:24:50 26 4
gpt4 key购买 nike

我刚开始使用 mongodb。我有一个通过 mongoid (4.0.0) 使用 mongodb 的 Rails 4.0 应用程序有一个公司模型和一个用户模型。所以用户 belongs_to :company 和公司 has_many :users

当我启动控制台并执行 Company.first 时,我得到了一个我创建的公司。当我 Company.first.users 第一次 我得到:

WARN -- :覆盖所有字段的现有字段

然后是公司用户的预期。

当我第二次这样做时,没有警告,只有公司用户。

这是为什么呢?有什么问题吗?我在 Heroku 中安装了该应用程序,那里也发生了同样的情况。

谢谢。

更新 1

这是模型

class Company
include Mongoid::Document
include Mongoid::Timestamps

field :name
field :token

has_many :users
has_many :feedbacks
has_many :main_categories
has_many :departments

end

更新 2

实际上这些警告只发生在 User 模型上

User.all
W, [2013-10-05T21:30:34.522867 #23442] WARN -- : Overwriting existing field email in class User.
W, [2013-10-05T21:30:34.523418 #23442] WARN -- : Overwriting existing field crypted_password in class User.
W, [2013-10-05T21:30:34.523662 #23442] WARN -- : Overwriting existing field salt in class User.
W, [2013-10-05T21:30:34.523888 #23442] WARN -- : Overwriting existing field remember_me_token in class User.
W, [2013-10-05T21:30:34.524129 #23442] WARN -- : Overwriting existing field remember_me_token_expires_at in class User.
W, [2013-10-05T21:30:34.524367 #23442] WARN -- : Overwriting existing field reset_password_token in class User.
W, [2013-10-05T21:30:34.524595 #23442] WARN -- : Overwriting existing field reset_password_token_expires_at in class User.
W, [2013-10-05T21:30:34.524834 #23442] WARN -- : Overwriting existing field reset_password_email_sent_at in class User.
W, [2013-10-05T21:30:34.525070 #23442] WARN -- : Overwriting existing field failed_logins_count in class User.
W, [2013-10-05T21:30:34.525319 #23442] WARN -- : Overwriting existing field last_login_at in class User.
W, [2013-10-05T21:30:34.525546 #23442] WARN -- : Overwriting existing field last_logout_at in class User.
W, [2013-10-05T21:30:34.525774 #23442] WARN -- : Overwriting existing field last_activity_at in class User.
=> #<Mongoid::Criteria
selector: {}
options: {}
class: User
embedded: false>

1.9.3p327 :003 > Company.all
=> #<Mongoid::Criteria
selector: {}
options: {}
class: Company
embedded: false>

更新 3

这与巫术有关,所以我会与他们核实。

最佳答案

Company 模型是否扩展了另一个模型?此警告用于警告人们有关子类中正在覆盖的字段。此外,如果您知道您正在覆盖一个字段,您可以传递一个选项 overwrite: true ,这样警告就不会出现。

关于ruby-on-rails - mongoid - 覆盖现有字段警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19179196/

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