2

向现有模型添加翻译功能并自动迁移现有记录的最简单方法是什么?

globalize gem 提供了一个create_translation_table带有选项的方法migrate_data: true,是否有移动性的等价物?

4

1 回答 1

1

我在使用:key_value策略使用 gem 时发现的唯一解决方法是为每个表创建迁移并使用重新保存列的值[:column_name]

示例:如果我们有一个发布表,并且我想将其名称属性添加到翻译中:必须执行 Mobility 迁移并且post.rb必须包括:

 # post.rb
class Post < ApplicationRecord
    extend Mobility
    translates :name, type: :string
end

然后更新记录以反映默认语言的值(假设application.rbhasconfig.i18n.default_locale = :deinitializers/mobility.rbdefinedlocale_accessors [:de, :en, :sl]

Post.all.each do |post|
  post.update(name_de: post[:name])
end

然后验证:

> Post.last.name_de
> Post.last.name_en
> Post.last.name_sl
于 2021-02-25T15:48:51.840 回答