La mise en place de géocodage avec Sinatra et ActiveRecord?

voix
1

J'ai une base de données MYSQL qui est accessible à l'aide ActiveRecord et Sinatra. Je suis en train d'effectuer certaines tâches de géolocalisation sur les enregistrements dans les tables.

Cependant, je crois que ma syntaxe est erronée extension de la classe géocodage fait ma demande CRUD Fail:

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 requête que je suis en train d'effectuer est le suivant: Post.near([@lat, @long], @dist, units: :km).offset(10 * @var.to_i).first(10)

Ce fil stackoverflow ici suggère aussi que je dois installer des arguments supplémentaires tels que attr_accessors. Comment puis-je faire pour la mise en place de réécriture ci - dessus afin que je puisse utiliser de géocodage nearméthode?

Créé 25/07/2018 à 13:24
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Je fixe ci-dessus en ajoutant:

require 'geocoder'

et

reverse_geocoded_by :latitude, :longitude
Créé 25/07/2018 à 18:32
source utilisateur

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