使用地理编码器 gem 存储一个模型搜索的地址和另一个模型的地址

use geocoder gem to store address of one model search with address of the other model

我有 2 个模型,一个用于客户,一个用于供应商,我正在尝试制作一个网站,当客户登录时,他们可以使用他们的 ip 地址进行搜索并按位置搜索附近,结果将是一些有附近地址的供应商。到目前为止,我打算使用geocoder 和gmap4rails gem。我仍然不确定如何使用地理编码器存储供应商地址,以便在客户搜索时显示正确的结果。有人可以就如何设计此功能提出建议吗?

由于您只是在寻找 "design" 而不是代码,因此我可以概述大致步骤:

ip 表单已提交=>
查找本地企业的地理数据 =>
将地理数据存储在 "vendor" 模型中 =>

其中唯一的非标准 rails 部分是地理查找。

有多种方法可以做到这一点,最肯定的是使用一些外部 API。我认为 geocodergmap4rails gem 没有此功能。

虽然您可能正在为您的视图层使用 gmap4rails,但如果您使用不同的服务,我不确定您是否需要 geocoder gem执行供应商查找。这个外部服务可能会完成同样的事情。

至于使用哪种外部服务:我会查看 Yelp 或 Google 的 API 之一。


回复您的评论:

当用户登录时,您可能需要为他们设置一个 session cookie。

任何用户都没有理由拥有 "belong to" 的 ip 形式。提交表单后,您将能够从提交表单时点击的控制器操作中查找当前登录的用户。

如果您将供应商数据存储在数据库中,则可以在视图中显示数据。

如果这些概念对您来说是新的,我建议您阅读 Rails 的详细教程。