Het opzetten van Geocoder met Sinatra en ActiveRecord?

stemmen
1

Ik heb een MySQL database die toegankelijk is met behulp van ActiveRecord en Sinatra. Ik ben op zoek naar bepaalde geolocatie taak uit te voeren op de gegevens in de tabellen.

Echter, ik geloof mijn syntax is verkeerd als een uitbreiding van de geocoder klasse maakt mijn CRUD verzoek mislukken:

myapp.rb

require 'rubygems'
require 'sinatra'
require 'active_record'
require 'table_print'
require 'json'

ActiveRecord::Base.establish_connection(
  :adapter  => mysql2,
  :host     => localhost,
  :username => root,
  :database => orbital
)

class Post < ActiveRecord::Base
  extend Geocoder::Model::ActiveRecord

 # attr_accessor :latitude, :longitude
end

class Comment < ActiveRecord::Base
  #extend Geocoder::Model::ActiveRecord
end

class MyApp < Sinatra::Application
  #extend Geocoder::Model::ActiveRecord
end

post '/post' do
  @user = params[:user]
  @content = params[:content]
  @latitude = params[:latitude]
  @longitude = params[:longitude]
  @timestamp = params[:timestamp]
  record = Post.create(user: @user, content: @content, longitude: @longitude, latitude: @latitude, timestamp: @timestamp)
  record.save
end

De query ik probeer uit te voeren is: Post.near([@lat, @long], @dist, units: :km).offset(10 * @var.to_i).first(10)

Dit stackoverflow draad hier suggereert ook dat ik moet instellen aanvullende argumenten zoals attr_accessors. Hoe ga ik over het opzetten van het herschrijven van de boven, zo kan ik Geocoder gebruiken nearmethode?

De vraag is gesteld op 25/07/2018 om 13:24
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Ik bevestigde daarvan door toevoeging:

require 'geocoder'

en

reverse_geocoded_by :latitude, :longitude
antwoordde op 25/07/2018 om 18:32
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more