【问题标题】: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!
    

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

    【讨论】:

    • 也许this可以帮你帮我...
    猜你喜欢
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    相关资源
    最近更新 更多