Ruby on rails mongoid-覆盖现有字段警告
我只是从mongodb开始。 我有一个rails 4.0应用程序,通过mongoid(4.0.0)使用mongodb 有一个公司模型和一个用户模型。因此,用户Ruby on rails mongoid-覆盖现有字段警告,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,我只是从mongodb开始。 我有一个rails 4.0应用程序,通过mongoid(4.0.0)使用mongodb 有一个公司模型和一个用户模型。因此,用户属于:公司,公司有许多:用户 当我启动控制台并执行公司操作时。首先,我会创建一个公司。当我做公司。首先。用户第一次我得到: 警告--:覆盖所有字段的现有字段 然后是公司用户的预期 当我第二次这样做时,没有警告,只有公司用户 为什么呢?有什么不对劲吗? 我在Heroku有这个应用程序,同样的情况也发生在那里 谢谢 更新1 这就是模型 clas
属于:公司,公司有许多:用户
当我启动控制台并执行公司操作时。首先,我会创建一个公司。当我做公司。首先。用户
第一次我得到:
警告--:覆盖所有字段的现有字段
然后是公司用户的预期
当我第二次这样做时,没有警告,只有公司用户
为什么呢?有什么不对劲吗?
我在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.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>
User.all
W、 [2013-10-05T21:30:34.522867#23442]警告--:覆盖类用户中的现有字段电子邮件。
W、 [2013-10-05T21:30:34.523418#23442]警告--:覆盖类用户中现有字段加密的_密码。
W、 [2013-10-05T21:30:34.523662#23442]警告--:覆盖类用户中的现有字段。
W、 [2013-10-05T21:30:34.523888#23442]警告--:覆盖类用户中的现有字段remember_me_令牌。
W、 [2013-10-05T21:30:34.524129#23442]警告--:在类内用户上覆盖现有字段remember_me_token_expires_。
W、 [2013-10-05T21:30:34.524367#23442]警告--:覆盖类用户中的现有字段重置密码令牌。
W、 [2013-10-05T21:30:34.524595#23442]警告--:在类内用户上覆盖现有字段重置(密码)令牌(过期)。
W、 [2013-10-05T21:30:34.524834#23442]警告--:覆盖现有字段重置密码发送给课堂用户的电子邮件。
W、 [2013-10-05T21:30:34.525070#23442]警告--:覆盖类用户中的现有字段失败。
W、 [2013-10-05T21:30:34.525319#23442]警告--:覆盖类内用户上一次登录时的现有字段。
W、 [2013-10-05T21:30:34.525546#23442]警告--:在类内用户上覆盖现有字段“上次注销”。
W、 [2013-10-05T21:30:34.525774#23442]警告--:在类内用户上覆盖现有字段last_activity_。
=> #
1.9.3p327:003>公司所有
=> #
更新3
这和巫术有关,所以我会和他们核实一下 公司模式是否扩展了另一种模式?此警告用于警告人们子类中正在覆盖的字段。
另外,如果您知道您正在覆盖一个字段,您可以传递一个选项overwrite:true
,这样警告就不会显示。出现警告的原因是巫术正在自动将所需字段添加到模型中。因此,巫术需要运行的字段不需要在模型中定义。在我的例子中,模型最终是这样的:
class User
include Mongoid::Document
include Mongoid::Timestamps
authenticates_with_sorcery!
field :name
field :surname
field :role
belongs_to :company
end
这是在通过MongoID或MongoMapper使用MongoDB时完成的:公司模型只是基础模型。它没有扩展任何模型。请参阅原始问题中的更新1。用户模型如何,它是否扩展了任何其他类?不,它所做的唯一特别的事情是使用\u巫术对\u进行身份验证!其他模型也不扩展任何其他类。如更新2中所示,这些警告只影响用户模型