Эти подготовленные заявления, подготовленные заявления предлагают два основных преимущества:
Запрос нужно только разобрать (или подготовить) один раз, но может выполняться несколько раз с одинаковыми или разными параметрами , Когда запрос будет подготовлен, база данных будет анализировать, компилировать и оптимизировать свой план выполнения запроса. Для сложных запросов этот процесс может занять достаточно времени, чтобы заметно замедлить работу приложения, если есть необходимость повторять один и тот же запрос много раз с разными параметрами. Используя подготовленный оператор, приложение избегает повторения цикла анализа / компиляции / оптимизации. Это означает, что подготовленные операторы используют меньше ресурсов и, следовательно, работают быстрее.
Параметры для подготовленных операторов не обязательно должны быть указаны; драйвер автоматически обрабатывает это. Если приложение использует исключительно подготовленные операторы, разработчик может быть уверен, что SQL-инъекция не произойдет (однако, если другие части запроса создаются с неэкранированным вводом, SQL-инъекция по-прежнему возможна).
blockquote >
Я наконец-то нашел то, что искал с помощью Свена Фукса:
Этот довольно удивительный плагин от Dylan Stamat делает именно то, что указывает имя, и дополнительно обрабатывает кеширование!
Свен также упомянул, что текущая ветвь i18n / active_record также предоставляет бэкэнд ActiveRecord :
http://github.com/svenfuchs/i18n/blob/active_record/lib/i18n/backend/active_record.rb
Некоторое обсуждение этой темы происходит в группе пользователей goolge i18n:
http://groups.google.com/group/rails-i18n/browse_thread/thread/6b7ba3c401890a7e
Проблема решена, благодаря I18n Свену Фуксу! ;)
У нас был хороший опыт с fast_gettext
, у него есть бэкэнд с поддержкой DB, который поставляется с контроллером для выполнения переводов через Интернет. Кэширование встроено, хотя нам приходилось кодировать предварительную загрузку всех переводов при загрузке (это намного быстрее, чем получать их по одному с помощью кэширования).
You might want to try http://github.com/joshmh/globalize2/tree/master