【发布时间】:2011-06-22 11:06:01
【问题描述】:
我的模型如下:
class User
include Mongoid::Document
field :name
end
在将一些用户对象保存到数据库后,我添加了更多字段:
class User
include Mongoid::Document
include Mongoid::Timestamps::Created
field :name
field :birthdate
end
现在,我希望我可以使用以下 sn-p:
@user = User.all
@user.each do |u|
puts u.name
puts u.birthdate.strftime(#someFormat)
puts u.created_at.strftime(#someFormat)
end
很遗憾,因为我的旧 user 对象没有 birthdate 键,我收到此错误:strftime called on nil class。
问题:
- 如何使用 Mongoid 处理此类情况?在 MySQL 中,当添加一列时,它也会添加到旧行中。但如果我在 MongoDB 中看到,它不会添加新字段作为旧数据的键。
-
created_at字段也存在此问题,因为旧数据也没有该字段。
我正在寻找解决此问题的好方法,每次检查 nil 条件不是一个可扩展的选项,因为字段的数量将继续增加。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid