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?













