向现有模型添加翻译功能并自动迁移现有记录的最简单方法是什么?
globalize gem 提供了一个create_translation_table
带有选项的方法migrate_data: true
,是否有移动性的等价物?
向现有模型添加翻译功能并自动迁移现有记录的最简单方法是什么?
globalize gem 提供了一个create_translation_table
带有选项的方法migrate_data: true
,是否有移动性的等价物?
我在使用:key_value策略使用 gem 时发现的唯一解决方法是为每个表创建迁移并使用重新保存列的值[:column_name]
示例:如果我们有一个发布表,并且我想将其名称属性添加到翻译中:必须执行 Mobility 迁移并且post.rb
必须包括:
# post.rb
class Post < ApplicationRecord
extend Mobility
translates :name, type: :string
end
然后更新记录以反映默认语言的值(假设application.rb
hasconfig.i18n.default_locale = :de
和initializers/mobility.rb
definedlocale_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