Possible solutions: https://github.com/igorkasyanchuk/cache_with_locale

On Tuesday, September 15, 2015 at 8:22:05 PM UTC+3, Yves-Eric wrote:
>
> Hi all,
>
>
> I have been hit by this issue too a few years back, so I think I should 
> contribute. First, I18n has been a first class citizen since Rails 2.2 (
> http://weblog.rubyonrails.org/2008/11/18/new-rails-2-2-i18n-defaults), so 
> I would not be so quick to dismiss the problem because a minority of apps 
> use the feature.
>
> So the main question is: "shouldn't locale be included by default into 
> cache key?"
>
> One important thing to keep in mind: Rails cache can store HTML snippets 
> (for which having the locale in the key would help), but can also be used 
> to store other, non-i18n data (for which a key without the locale is fine). 
> So let's look at what happens with and without locale in the default key 
> namespace in these two use cases, when a developer adds I18n to his app:
>
> 1) Without locale in the default key namespace (current behavior)
>   non-i18n data: works fine
>   HTML: breaks, developer wastes time tracking the problem, and ends up 
> adding locale to the key manually
>
> 2) With locale in the default key namespace
>   non-i18n data: extra, unneeded cache miss per locale, but still works 
> fine
>   HTML: works fine out of the box.
>
> Looking at it this way, it seems obvious to me that 2) should be the 
> default behavior, since it works fine out of the box in both cases. And if 
> you are worried about the performance impact of the extra cache misses for 
> non-i18n data, they I'll wager back in the "a small minority of apps need 
> localization", meaning most apps won't be affected at all.
>
> So, +1 to including the locale in the default key namespace.
>
>
>
> On Tuesday, 15 September 2015 02:56:20 UTC+9, Kir Shatrov wrote:
>>
>> I don't think that it should be included by default, since a small 
>> minority of apps need localization (
>> https://github.com/rails/rails/pull/21124#issuecomment-127995334).
>>
>> The best thing we can do for it - introduce the `default_key_scope` 
>> method for Rails cache, and in this case you'd be able to set the prefix 
>> for all cache keys.
>>
>> On Friday, September 11, 2015 at 12:52:58 AM UTC+3, Anthon Mur wrote:
>>>
>>> fix: Hence, shouldn't local*e* be included by default into cache key?
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to