我有一個應用程序,允許用戶根據他們選擇的地址發佈優惠。我想添加保存地址的選項,這個選項是根據IP地址決定的用戶當前位置來保存的。我使用的是紅寶石Geocoder寶石。此代碼將通過,但它不會保存任何地址到數據庫。我不確定這是我的方法的問題還是由於開發環境而無法正常工作。我知道Geocoder的其他功能,例如距離計算不適用於開發。從Rails中的IP地址獲取當前位置的方法(geocoder和gmaps4rails gems)
current_location
是要約類的布爾屬性
在報價/ _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
但是該地址沒有保存(使用控制檯已籤)。將不勝感激任何幫助!非常感謝
謝謝 - 我使用助手的部分原因是'request'方法屬於ActionView模塊。不幸的是它仍然無法正常工作。 – user2514224
在這種情況下,我最好的建議是用幾個打印語句來檢查代碼是否正在運行request.location.address行。通過這種方式,您可以檢查對象是否按照他們應該的方式工作(例如,無法從中判斷控制器是否正確)。一旦您找到導致問題的線路,請發回。 –