Einrichten Geocoder mit Sinatra und Active?

stimmen
1

Ich habe eine MySQL-Datenbank, die Activerecord und Sinatra zugegriffen wird. Ich versuche, auf die Datensätze in den Tabellen bestimmte geolocation Aufgabe auszuführen.

Allerdings glaube ich, meine Syntax der Geocoder Klasse als Verlängerung macht meine CRUD Anfrage nicht falsch ist:

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

Die Abfrage, die ich ausführen versuche ist: Post.near([@lat, @long], @dist, units: :km).offset(10 * @var.to_i).first(10)

Dieser Stackoverflow Thread hier schlägt auch vor, dass ich zusätzliche Argumente einrichten müssen wie attr_accessors. Wie gehe ich über die oben Umschreiben Einrichtung so i Geocoder ist verwenden nearMethode?

Veröffentlicht am 25/07/2018 um 13:24
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Ich reparierte die oben durch Zugabe von:

require 'geocoder'

und

reverse_geocoded_by :latitude, :longitude
Beantwortet am 25/07/2018 um 18:32
quelle vom benutzer

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