У меня есть база данных MYSQL, который доступен с помощью ActiveRecord и Синатра. Я пытаюсь выполнить определенную задачу геолокации на записи в таблицах.
Тем не менее, я полагаю, что мой синтаксис является неправильным, как расширить класс геокодера делает мой запрос CRUD неудачу:
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
Запрос я пытаюсь выполнить это:
Post.near([@lat, @long], @dist, units: :km).offset(10 * @var.to_i).first(10)
Это StackOverflow нить здесь также предполагает , что мне нужно настроить дополнительные параметры , такие как attr_accessors. Как я могу идти о настройке перезаписи выше , так что я могу использовать геокодировщик nearметоды?













