2011-07-28 53 views
0

我使用geocoder gem来获取有关用户的位置信息。我面临的问题是如何将这些信息作为变量传递给视图和应用程序?将地理编码器信息传递给视图?

我不想在每次加载新页面时查询api,但也想保留视图和控制器的位置信息并使用它。

回答

1

要将控制变量从控制器传递到视图,您需要在变量前面使用@(例如,@geodata是您的对象)。

要保存的信息,您应该(通过多态性也许其他机型)一些外地location添加到您的User模型或创建一个新的Geowhatever模型,并将其分配给每个用户。

这样你就可以在你的视图中使用@user.location@user.geowhatever.location

进行缓存时唯一需要注意的是保持缓存是最新的。这里观察员UserObserver可以完成这项任务。

+0

用户位置可能会不时变化,因为我通过IP地址进行地理编码,所以无法将其保存在用户模型中。创建一个新模型并为其分配价值可能是一条路。 我将不得不做一些阅读,但非常感谢您的帮助。 –