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?













