Mongoid类定义错误?

时间:2013-02-26 10:06:26

标签: ruby-on-rails mongoid

我有一个名为location的mongo文档:

class Location < MongoDocument                      
  field :latitude, type: Float             
  field :longitude, type: Float            
end

MongoDocument就是这样:

class MongoDocument
  include Mongoid::Document
  include Mongoid::Timestamps
end

虽然在另一个mongo文档中我有一个方法:

def self.local(location, limit_results)
    if location.present? && location.latitude.present?
    #run some code
    end
end

在调试中我可以检查位置并识别对象并显示其内容的哈希值:

{Location}#<Location:0x6fa5798>
@_id = {BSON::ObjectId}512b2330b109ab17fc00002c
@latitude = nil
@longitude = nil

如果我尝试在此对象上使用任何选择器(getter / setter),则返回:     undefined method '[]' for nil:NilClass

我试过了:

location[:id]
location['id']
location.id
location[:latitude]
location['latitude']
location.latitude
location[:longitude]
location['longitude']
location.longitude

任何线索?我正在将我的代码从mongomapper迁移到mongoid,并且被这个难倒了。

1 个答案:

答案 0 :(得分:0)

我也忘了提到传入的位置来自'new'而不是'create'。将其交换为创建修复了我的问题。