Ben ActiveRecord ve Sinatra kullanılarak erişilen bir MYSQL veritabanı var. Ben tablolardaki kayıtların belirli coğrafi konum görevi gerçekleştirmek için çalışıyorum.
Ancak, ben geocoder sınıfını uzanan benim CRUD isteği başarısız kılan olarak benim sözdizimi yanlış olduğuna inanıyorum:
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
Ben gerçekleştirmek için çalışıyorum sorgu:
Post.near([@lat, @long], @dist, units: :km).offset(10 * @var.to_i).first(10)
Bu stackoverflow iş parçacığı burada da ben kurulum için gibi ek argümanlara ihtiyaç olduğunu göstermektedir attr_accessors. Nasıl yukarıdaki yüzden geocoder en kullanabilirsiniz yeniden yukarı ayarlama yaparsınız nearyöntemi?













