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?













