Configurarea geocoder cu Sinatra și ActiveRecord?

voturi
1

Am o bază de date MySQL, care este accesat folosind ActiveRecord și Sinatra. Încerc să îndeplinească anumite sarcini geolocalizare pe înregistrările din tabele.

Cu toate acestea, cred că sintaxa mea este greșit ca extinderea clasei geocoder face cererea mea CRUD eșuează:

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

Interogarea am încercat să efectueze este: Post.near([@lat, @long], @dist, units: :km).offset(10 * @var.to_i).first(10)

Acest fir StackOverflow aici , de asemenea , sugerează că am nevoie să setați argumente suplimentare , cum ar fi attr_accessors. Cum pot merge despre configurarea rescrierea cele de mai sus astfel încât i se poate utiliza geocoder lui nearmetoda?

Întrebat 25/07/2018 la 13:24
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Am stabilit mai sus prin adăugarea de:

require 'geocoder'

și

reverse_geocoded_by :latitude, :longitude
Publicat 25/07/2018 la 18:32
sursa de către utilizator

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