2013-11-27 6 views
1

Я использую Ruby on Rails 4 и жемчужину Globalize.Как избежать создания новых записей переводов путем обновления существующих?

Когда я отправляю несколько переводов из формы в моем приложении, Globalize создает новую запись для каждого языкового стандарта в таблице базы данных трансляции, даже если перевод для данного языка уже существует в этой таблице.

Я хотел бы иметь один перевод на языковой стандарт, поэтому, когда форма отправлена, новая запись перевода создается только в том случае, если она еще не существует, в противном случае она должна быть просто обновлена ​​с передающими данными.

Как я могу это сделать?

ответ

0

Трудно ответить на этот вопрос без дополнительной информации о формате данных в форме.

Предполагая, что у вас есть все локали в I18n.available_locales, и вы обновляете атрибут title, что-то, как это будет работать (если ваша запись называется post):

I18n.available_locales.each do |locale| 
    post.translation_for(locale).title ||= ... 
end 
post.save! 

Я могу предоставить более конкретные указания, если вам предоставить дополнительную информацию.

+0

Возможно, [это] (http://stackoverflow.com/questions/20268557/how-and-where-to-handle-the-updating-process-of-associated-records) поможет вам помочь мне .. , – user502052

Смежные вопросы