我有一个应用程序,它允许用户根据他们选择的地址发布优惠。我想添加根据用户当前位置保存地址的选项,由 IP 地址确定。我正在使用 ruby Geocoder gem。此代码将通过,但它没有将任何地址保存到数据库。我不确定这是否与我的方法有关,或者是否由于开发环境而无法正常工作。我知道 Geocoder 的其他功能(例如距离计算)在开发中不起作用。
current_location
是 Offer 类的布尔属性
在 offer/_form 视图中:
<div class="field"><br>
<%= f.label :use_current_location? %>
<%= f.check_box :current_location %>
</div>
在 OffersHelper 中:
def geocode_by_ip_address(offer)
if :current_location
offer.address = request.location.address
end
end
在报价模型中:
def geo_offer
geocode_by_ip_address(offer)
end
对于我的地图,gmaps4rails 使用以下属性:
def gmaps4rails_address
"#{self.address}, #{self.city}, #{self.country}"
end
但是地址没有保存(已使用控制台检查)。将不胜感激任何帮助!非常感谢