Rails 访问 Geocoder::Calculations
Rails Access Geocoder::Calculations
大家好我有一个小应用程序,它在停止模型上获取地址并通过地理编码器对其进行地理编码gem
class Stop < ApplicationRecord
belongs_to :trip
acts_as_list scope: :trip
after_validation :geocode
geocoded_by :address
end
此停靠点模型属于行程。我使用 acts as list 给止损一个位置。
class Trip < ApplicationRecord
belongs_to :user
has_many :stops, -> { order(position: :asc) }
end
我想使用两站之间距离的位置。
我知道我可以使用 stop.trip 通过停靠站进入行程,所以我想使用 stop.trip 通过下一个 stop.position
进入停靠站
所以停一站会使用 Geocoder::Calculations.distance_between 计算到下一站的距离,就像这样
Geocoder::Calculations.distance_between([ stop.latitude, stop.longitude], [ stop.trip.stops.where(position: 2).latitude, stop.trip.stops.where(position: 2).longitude])
不幸的是,当我这样做时,我得到了
#Stop::ActiveRecord_AssociationRelation:0x00007fbab4e15cf0
的未定义方法“纬度”
所以我的问题是如何访问位置为 2
的当前行程停靠点的纬度
您可以通过以下方式访问列表中的下一项:
stop.lower_item
所以:
next_stop = stop.lower_item
Geocoder::Calculations.distance_between(
[stop.latitude, stop.longitude],
[next_stop.latitude, next_stop.longitude]
)
大家好我有一个小应用程序,它在停止模型上获取地址并通过地理编码器对其进行地理编码gem
class Stop < ApplicationRecord
belongs_to :trip
acts_as_list scope: :trip
after_validation :geocode
geocoded_by :address
end
此停靠点模型属于行程。我使用 acts as list 给止损一个位置。
class Trip < ApplicationRecord
belongs_to :user
has_many :stops, -> { order(position: :asc) }
end
我想使用两站之间距离的位置。
我知道我可以使用 stop.trip 通过停靠站进入行程,所以我想使用 stop.trip 通过下一个 stop.position
进入停靠站所以停一站会使用 Geocoder::Calculations.distance_between 计算到下一站的距离,就像这样
Geocoder::Calculations.distance_between([ stop.latitude, stop.longitude], [ stop.trip.stops.where(position: 2).latitude, stop.trip.stops.where(position: 2).longitude])
不幸的是,当我这样做时,我得到了
#Stop::ActiveRecord_AssociationRelation:0x00007fbab4e15cf0
的未定义方法“纬度”所以我的问题是如何访问位置为 2
的当前行程停靠点的纬度您可以通过以下方式访问列表中的下一项:
stop.lower_item
所以:
next_stop = stop.lower_item
Geocoder::Calculations.distance_between(
[stop.latitude, stop.longitude],
[next_stop.latitude, next_stop.longitude]
)