动员宝石:将翻译添加到现有模型(已经有很多记录)中



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

Globalize GEM提供了一个具有选项migrate_data: true的方法create_translation_table,是否有同等的移动性?

使用>:key_value 策略,我在使用GEM时发现的唯一解决方法是为每个表创建一个迁移,并使用 [:column_name]

重新储存列的值

示例:如果我们有 post 表,并且我想添加它是 name 属性属性:移动性迁移必须执行,post.rb必须包括:

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

然后更新记录以反映默认语言的值(假设application.rb具有config.i18n.default_locale = :de,并且initializers/mobility.rb定义了locale_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

最新更新