У меня есть несколько таблиц, которые содержат переводы.Чтобы упростить доступ ко всем переводам и обеспечить их кэширование, мне удалось после инициализации Rails прочитать таблицу и вставить их содержимое в хранилище переводов.
#store translations in the I18n store
I18n.available_locales.each do |lang|
storage_hash = {:text => {}, :permalink => {}}
Translation.where(:translatable_type => self.name, :language=> lang).each do |c|
storage_hash[:text][c.translatable_id.to_s] = c.text
storage_hash[:permalink][c.translatable_id.to_s] = c.permalink
end
I18n.backend.store_translations(lang, self.name.downcase => storage_hash)
end
Отлично работает, но в dev иногда хранилище переводов сбрасывается, и я теряю ранее добавленные переводы.
Это происходит в производстве?Могу ли я использовать обратный вызов для повторного заполнения моего перевода?Или есть лучший способ сделать то, что я хочу?