我正在使用geocoder gem来获取有关用户的位置信息。我面临的问题是如何将这些信息作为变量传递给视图和应用程序?
我不希望每次加载新页面时都查询api,但也希望保留视图和控制器的位置信息并使用它。
答案 0 :(得分:1)
要将gobal变量从控制器传递到视图,您需要在变量前使用@
(例如@geodata
作为您的对象)。
要保存信息,您应该向location
模型中添加一些字段User
,或者创建一个新的Geowhatever
模型,并将其分配给每个用户(也可以通过多态性分配给其他模型) )。
这样您就可以在视图中执行@user.location
或@user.geowhatever.location
。
进行缓存时唯一需要注意的是保持缓存是最新的。观察者UserObserver
可以在这里完成任务。