【问题标题】:How to avoid creating new translation records by updating those that exist?如何通过更新现有的翻译记录来避免创建新的翻译记录?
【发布时间】:2013-11-27 21:40:48
【问题描述】:
我正在使用 Ruby on Rails 4 和 Globalize gem。
当我从我的应用程序中的一个表单提交多个翻译时,Globalize 会为翻译数据库表中的每个语言环境创建一个新记录,即使该表中已经存在给定语言环境的翻译。
我希望每个语言环境都有一个翻译,所以当提交表单时,只有当它尚不存在时才会创建一个新的翻译记录,否则它应该随着提交而更新数据。
我该怎么做?
【问题讨论】:
标签:
ruby-on-rails
ruby
internationalization
unique
globalize
【解决方案1】:
如果没有有关表单中数据格式的更多信息,很难回答这个问题。
假设您拥有I18n.available_locales 中的所有语言环境,并且您正在更新属性title,这样的事情将起作用(假设您的记录称为post):
I18n.available_locales.each do |locale|
post.translation_for(locale).title ||= ...
end
post.save!
如果您提供更多信息,我可以提供更具体的指导。