2011-07-28 84 views
0

我使用geocoder gem來獲取有關用戶的位置信息。我面臨的問題是如何將這些信息作爲變量傳遞給視圖和應用程序?將地理編碼器信息傳遞給視圖?

我不想在每次加載新頁面時查詢api,但也想保留視圖和控制器的位置信息並使用它。

回答

1

要將控制變量從控制器傳遞到視圖,您需要在變量前面使用@(例如,@geodata是您的對象)。

要保存的信息,您應該(通過多態性也許其他機型)一些外地location添加到您的User模型或創建一個新的Geowhatever模型,並將其分配給每個用戶。

這樣你就可以在你的視圖中使用@user.location@user.geowhatever.location

進行緩存時唯一需要注意的是保持緩存是最新的。這裏觀察員UserObserver可以完成這項任務。

+0

用戶位置可能會不時變化,因爲我通過IP地址進行地理編碼,所以無法將其保存在用戶模型中。創建一個新模型併爲其分配價值可能是一條路。 我將不得不做一些閱讀,但非常感謝您的幫助。 –