如何通过更新存在的翻译记录来避免创建新的翻译记录?

时间:2013-11-27 21:40:48

标签: ruby-on-rails ruby internationalization unique globalize

我正在使用Ruby on Rails 4和Globalize gem。

当我从应用程序中的表单提交多个翻译时,Globalize会为翻译数据库表中的每个语言环境创建一个新记录,即使该表中已存在给定语言环境的翻译也是如此。

我希望每个区域设置一个翻译所以当提交表单时,只有当它还不存在时才会创建新的翻译记录,否则它应该只是通过提交更新数据

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果没有关于表格中数据格式的更多信息,很难回答这个问题。

假设您拥有I18n.available_locales中的所有区域设置,并且您要更新属性title,则此类内容将起作用(假设您的记录称为post):

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

如果您提供更多信息,我可以提供更具体的指导。