Ik heb een MySQL database die toegankelijk is met behulp van ActiveRecord en Sinatra. Ik ben op zoek naar bepaalde geolocatie taak uit te voeren op de gegevens in de tabellen.
Echter, ik geloof mijn syntax is verkeerd als een uitbreiding van de geocoder klasse maakt mijn CRUD verzoek mislukken:
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
De query ik probeer uit te voeren is:
Post.near([@lat, @long], @dist, units: :km).offset(10 * @var.to_i).first(10)
Dit stackoverflow draad hier suggereert ook dat ik moet instellen aanvullende argumenten zoals attr_accessors. Hoe ga ik over het opzetten van het herschrijven van de boven, zo kan ik Geocoder gebruiken nearmethode?













