forked from ryanong/mongoid_spacial
-
Couldn't load subscription status.
- Fork 31
Open
Labels
Description
the model
class Delivery
class Zone
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Geospatial
field :area, type: Polygon, sphere: true
end
endcreating an area
area = Mongoid::Geospatial::Polygon.new([[-46.74579620361328, -23.526297058421182],[-46.723995208740234, -23.548172777916854],[-46.707258224487305,-23.529917032960597],[-46.725196838378906,-23.517167984845393],[-46.74579620361328,-23.526297058421182]])
json = {'type': 'Polygon', coordinates: [area]}
Delivery::Zone.create(area: json)On MongoDB
> db.delivery_zones.find().pretty()
{
"_id" : ObjectId("57684889ae61d11b5ec5c992"),
"area" : {
"type" : "Polygon",
"coordinates" : [
[
[
-46.62915229797363,
-23.575944975344676
],
[
-46.630589962005615,
-23.58227747294
],
[
-46.62475347518921,
-23.582965769489153
],
[
-46.62292957305908,
-23.577046301216768
],
[
-46.62915229797363,
-23.575944975344676
]
]
]
}
}Executing on rails c
Delivery::Zone.last.area
TypeError: no implicit conversion of BSON::Document into Integer
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/mongoid-geospatial-5.0.0/lib/mongoid/geospatial/geometry_field.rb:86:in `initialize'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/mongoid-geospatial-5.0.0/lib/mongoid/geospatial/geometry_field.rb:86:in `new'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/mongoid-geospatial-5.0.0/lib/mongoid/geospatial/geometry_field.rb:86:in `demongoize'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/mongoid-5.1.3/lib/mongoid/fields/standard.rb:10:in `demongoize'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/mongoid-5.1.3/lib/mongoid/fields.rb:418:in `block (2 levels) in create_field_getter'
from (irb):3
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in `start'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/railties-4.2.6/lib/rails/commands/console.rb:9:in `start'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/railties-4.2.6/lib/rails/commands.rb:17:in `<top (required)>'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `block in require'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:240:in `load_dependency'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
from /Users/marco/Documents/prj/zipster/ecommerce/src/bin/rails:9:in `<top (required)>'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:268:in `load'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:268:in `block in load'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:240:in `load_dependency'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:268:in `load'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/commands/rails.rb:6:in `call'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/command_wrapper.rb:38:in `call'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:191:in `block in serve'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:161:in `fork'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:161:in `serve'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:131:in `block in run'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:125:in `loop'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:125:in `run'
from /Users/marco/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application/boot.rb:19:in `<top (required)>'
from /Users/marco/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/marco/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'I changed the line 86 of geometry_field.rb from:
def demongoize(obj)
obj && new(obj)
endto
def demongoize(obj)
obj
endAnd apparently worked.
Question: Why we have the '&& new(obj)'?
Thank you,
Marco.