La creación de Geocoder con Sinatra y ActiveRecord?

votos
1

Tengo una base de datos MySQL que se accede utilizando ActiveRecord y Sinatra. Estoy tratando de llevar a cabo ciertas tareas de geolocalización de los registros en las tablas.

Sin embargo, creo que mi sintaxis es incorrecta como la ampliación de la clase geocodificador hace que mi solicitud CRUD falte;

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

La consulta que estoy tratando de realizar es: Post.near([@lat, @long], @dist, units: :km).offset(10 * @var.to_i).first(10)

Este hilo StackOverflow aquí también sugiere que necesito para configurar argumentos adicionales, tales como attr_accessors. ¿Cómo hago para configurar la reescritura de lo anterior, así que puede utilizar de Geocoder nearmétodo?

Publicado el 25/07/2018 a las 13:24
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Me fijo lo anterior mediante la adición de:

require 'geocoder'

y

reverse_geocoded_by :latitude, :longitude
Respondida el 25/07/2018 a las 18:32
fuente por usuario

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