我正在尝试实现一种功能,该功能采用访问者的 IP 地址并在站点的标题中返回城市名称。
但是,需要从预先填写的城市列表中删除该城市。我将用美国主要城市的列表填充该列表。
我的问题分为三个部分:
- 填充主要城市静态列表的最佳方式是什么——是通过迁移吗?
- 如何使用 Geocoder 从该预填充列表中仅返回城市?一些城市将是较小的城市,我想根据它们与这些城市的接近程度将它们“卷入”到较大的城市中
- 如何将标题中的城市显示为下拉列表并根据用户的 IP 将默认城市设置为用户的城市,同时还让用户从该下拉列表中选择不同的城市?
目前,我正在使用专用的 Location.rb 模型和 locations_controller.rb 控制器。
在我的模型中:
reverse_geocoded_by :lat, :lon do |obj,results|
if geo = results.first
obj.city = geo.city
end
end
after_validation :reverse_geocode
在我的控制器中:
def index
@ip = request.remote_ip
@locations = Location.all
@city = result.city
end
在我的部分标题中:
<%= collection_select(@cities) %>
我是 Rails 和 GeoCoder gem 的新手,所以我不确定我在代码和结构方面是否正确。任何输入都会有所帮助。