Rails随机geo city搜索结果

时间:2014-04-03 20:05:18

标签: ruby-on-rails ruby-on-rails-4 geo

我有一个带有用户搜索的应用程序。当current_user进行搜索时,它会从数据库中提取随机用户。然后,它从数据库中拉出current_user位置X英里内的位置,并将它们存储在@locations中。显示结果时,用户位置只是@locations(@ locations.sample.city)的随机位置。

我的问题:缓存结果的最佳方法是什么。例如,如果搜索返回了User2在Nantucket的位置,那么当再次执行搜索或刷新页面时,User2仍将使用Nantucket作为其位置而不是另一个随机位置。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用user_id作为缓存键,然后将随机位置存储在那里,这样当页面刷新时,您只返回存储在缓存中的位置,如果不是,则将分配新位置。例如:

Rails.cache.fetch('location_#{userid}') { @locations.sample.city }