devise
、kaminari
、およびを使用してdalli(memcached)
います。
読み込み時にキャッシュを実装しようとしましたhttp://example.com/communities?sort=popular
以下のようにコーディングしてみました。ただし、キャッシュの保存が機能していないようです。
ページをリロードするたびにSQLを送信しているようです...
どうしたの?
次に、可能であれば、ユーザーが「Community」レコードを作成または編集した後に、文字列「community_index_sort_by_」を含むすべての保存済みキャッシュをクリアしたいと思います。
構成/環境/開発.rb
...
config.consider_all_requests_local = true
config.action_controller.perform_caching = true
config.cache_store = :dalli_store
...
community_controller.rb
def index
@key = "community_index_sort_by_" + params[:sort].to_s + "_page_" + params[:page].to_s
if params[:sort] == 'popular'
unless Rails.cache.fetch(:controller => "communities", :action => "index", :action_suffix => @key)
@communities = Community.scoped.page(params[:page]).order("cached_votes_up DESC")
end
elsif params[:sort] == 'latest'
@communities = Community.scoped.page(params[:page]).order("created_at DESC")
end
end
ビュー内のファイルには何も触れていません