MongoDB数据库中有一个名为“failed?”,包括问号。有时当我访问该字段时,我会在数据库中得到值,有时会得到空值。我想知道为了调试这个应该发生什么。那么,在模型的字段名中是否可以有一个问号,如下所示:

field :failed?, :type => Boolean, :default => nil

或者我是为了一个麻烦的世界。假设我已经在数据库中有了这个,并且必须使用它,我应该如何得到字段。
环境:Rails3.1,JRuby,Mongoid。

最佳答案

很可能是Mongoid bug,因为字段名中的问号在MongoDB中是有效的。如果我不得不猜测的话,这可能是与Mongoid创建的automatic<field>?的奇怪冲突。
解决这个问题的最简单方法是尝试通过从MongoDB中提取的原始散列访问它,您可以使用model.attributes["failed?"]访问它。如果您仍然有问题,那么很可能是MongoDB驱动程序问题。

关于ruby-on-rails - Rails:如何在模型中使用问号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8753873/

10-12 06:49