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
このオブジェクトで任意のセレクター (ゲッター/セッター) を使用しようとすると、次のように返されます。
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に移行する途中で、これに困惑しています。