2014-04-03 48 views
1

我有一個搜索應用程序獲取用戶。當current_user執行搜索時,它會從數據庫中提取隨機用戶。然後,它從數據庫中提取current_user位置X英里內的位置,並將它們存儲在@locations中。當顯示結果時,用戶位置只是@locations(@ locations.sample.city)中的一個隨機數。Rails隨機地理城市搜索結果

我的問題:什麼是緩存結果的最好方法。例如,如果搜索返回了User2在Nantucket的位置,那麼當再次執行搜索或刷新頁面時,User2仍然具有Nantucket,因爲它是位置而不是另一個隨機位置。

在此先感謝。

回答

0

您可以使用user_id作爲緩存鍵,然後將隨機位置存儲在那裏,因此當頁面刷新時,您只需返回緩存中存儲的位置,如果不是,則會分配新位置。例如:

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