rails:1868
From: OZAWA Sakuro <sakuro@e...>
Date: Sun, 3 Dec 2006 17:51:53 +0900
Subject: [rails:1868] Re: GetTextとキャッシュ
さくです。 FileStore限定で、tmp/cache も決め打ちというダサダサな作り ですが、 言語ごとにキャッシュディレクトリを tmp/cache/LANG に分ける ことで、 どの言語のキャッシュがあるかを知るようにしてみました。 思い切り回り道をしている感が…… app/controllers/application.rb # def cache_erb_fragment_with_lang(block, name = {}, options = nil) if name.is_a? Hash and ! name.include?(:lang) name = name.merge(:lang => GetText.locale.language) end cache_erb_fragment_without_lang(block, name, options) end alias_method_chain :cache_erb_fragment, :lang hide_action :cache_erb_fragment_with_lang hide_action :cache_erb_fragment_without_lang private def fragment_cache_key_with_lang(name) name_dup = name.dup lang = name_dup.delete(:lang) if name.is_a? Hash key = fragment_cache_key_without_lang(name_dup) lang.blank? ? key : '%s/%s' % [ lang, key ] end alias_method_chain :fragment_cache_key, :lang def expire_fragment_with_lang(name, options=nil) if name.is_a? Hash languages = Dir[File.join(RAILS_ROOT, 'tmp/cache', '*')].map{| l| File.basename(l)} languages.each do |lang| expire_fragment_without_lang(name.merge(:lang => lang), options) end end end alias_method_chain :expire_fragment, :lang # end > 以下のようにしてみましたが、たとえばenとjaの > localeデータしか用意していない場合にブラウザが要求する言語を > fr にしてリクエストすると、lang=frのキャッシュが出来てし > まい、これが消せなくなりますね。 - OZAWA Sakuro <mailto:sakuro@e...> ♪踊れや(踊れや) 黄泉路の宴(妖の刻) 我は 舞巫女(神の生贄) 戯れよ(捧げよ) いざ EXEC_PAJA/.#Misya extracting / 志方あきこ -- ML: rails@r... 使い方: http://QuickML.com/
1866 2006-12-03 06:47 [sakuro@e... ] GetTextとキャッシュ 1867 2006-12-03 07:52 ┗[sakuro@e... ] -> 1868 2006-12-03 09:51 ┗[sakuro@e... ]