gpt4 book ai didi

ruby-on-rails - Rails 内连接结合地理编码 gem

转载 作者:行者123 更新时间:2023-12-04 06:35:30 40 4
gpt4 key购买 nike

我有 2 个相关的 rails 模型

class Location < ActiveRecord::Base
has_many :rates
geocoded_by ....
end

class Rate < ActiveRecord::Base
belongs_to :location
end

我正在使用地理编码器 gem - http://www.rubygeocoder.com

我想找到具有特定 pair 的所有费率距离用户一定距离内的属性。

在 SQL 中,我会对费率进行内部联接
SELECT * FROM rates INNER JOIN locations ON rates.location_id=locations.id;

然后,插入一个 where 条件来过滤 pair 属性,然后在结果表上使用 Geocoder 的 Near 方法(near 方法的工作原理是在查询中插入一个 where 条件,该查询使用位置上的纬度和经度属性计算距离)到只选择合适距离内的行

我怎样才能在 Rails 中做到这一点?我试过
rates = Rate.joins(:locations)

我得到
ActiveRecord::ConfigurationError: Association named 'locations' was not found; perhaps you misspelled it?

我想做这个
rates = Rate.joins(:locations).near(my_latitude, my_longitude, distance).where(:rates => {:pair => 'xxxx'})

但我明白了
undefined method `near' for #<ActiveRecord::Relation:0xa075ff8>

最佳答案

near = Location.near(location, radius)
Rate.includes(:location).references(:location).merge(near)

这可以与其他位置或速率范围链接

关于ruby-on-rails - Rails 内连接结合地理编码 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12298836/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com