我们的mongodb数据库中有一个名为“failed?”的字段,包括问号。有时当我访问该字段时,我得到数据库中的值,有时我得到null。我想要了解为了调试它会发生什么。那么,你可以在模型中的字段名称中有一个问号,如下所示:
field :failed?, :type => Boolean, :default => nil
或者我是否陷入了困境。假设我已经在数据库中使用了这个并且必须使用它,我应该如何获取这些字段。
环境:Rails 3.1,JRuby,Mongoid。
答案 0 :(得分:2)
由于字段名称中的问号在MongoDB中有效,因此很可能是Mongoid错误。如果我不得不猜测,那可能是由Mongoid创建的自动<field>?
的奇怪冲突。
解决此问题的最简单方法是尝试通过从MongoDB中提取的原始哈希来访问它,您可以使用model.attributes["failed?"]
访问它。如果您仍有问题,那么可能是MongoDB驱动程序问题。