Да, УДАЛИТЕ, медленнее, УСЕЧЕННЫЙ быстрее. Почему?
УДАЛЯЮТ, должен считать записи, проверочные ограничения, обновить блок, индексы обновления, и генерировать восстановление/отмену. Все это занимает время.
УСЕЧЕННЫЙ просто корректирует указатель в базе данных для таблицы (Паводок Mark) и пуф! данных не стало.
Это - конкретная Oracle, AFAIK.
Он не должен перезаписывать вашу локаль "en". Переводы объединены. store_translations
в простых внутренних вызовах I18n merge_translations
, который выглядит следующим образом:
# Deep merges the given translations hash with the existing translations
# for the given locale
def merge_translations(locale, data)
locale = locale.to_sym
translations[locale] ||= {}
data = deep_symbolize_keys(data)
# deep_merge by Stefan Rusterholz, see http://www.ruby-forum.com/topic/142809
merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
translations[locale].merge!(data, &merger)
end
Как видите, будут перезаписаны только ключи, которые вы вводите в последнем файле yml перевода.
Моя компания занимается разработкой mavenlive.com , платформы для управления знаниями и поддержки принятия решений в течение трех лет. За последние несколько лет мы многое узнали о рельсах, и вот несколько моих рекомендаций.
Переключитесь на Mac! Инструменты, доступные вам, и среда разработки на Mac позволяют вам работать намного продуктивнее, чем на Windows.
railcasts.com предлагает множество информативных скринкастов от новичка до эксперта. Вы всегда можете найти новые и более эффективные способы сделать что-то из сообщений Райана.
Скринкасты Scaling Rails в сочетании с NewRelic предоставили мощное представление о производительности нашего приложения и позволяют нам эффективно развиваться, сохраняя при этом глаза на проблемы масштабируемости в будущем .
Я думаю, вы перепутали две разные вещи.
Файл i18n предназначен для переводов.
Если у вас есть клиент, которому требуется конкретное имя для некоторого поля, это не проблема перевода, а функциональность.
Другими словами, я думаю, вам нужно что-то вроде этого:
en:
messages: messages
users: users
discussions: discussions
А затем добавьте конкретную функциональность где-нибудь еще, например, в вашем представлении:
if(customer.needs_discussions?)
<%= t(:discussions) %>
else
<%= t(:messages) %>
end
В качестве альтернативы вы можете добавить строковый атрибут для ваших клиентов, по умолчанию - «сообщения». Тогда ваше представление будет выглядеть так:
<%= t(customer.messages_field_name) %>