首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Globalize2和迁移

Globalize2和迁移
EN

Stack Overflow用户
提问于 2010-06-08 15:50:00
回答 1查看 253关注 0票数 0

我已经使用globalize2将i18n添加到一个旧站点。西班牙语中已经有很多内容,但是并没有存储在globalize2表中。有没有办法通过在rails中的迁移将这些内容转换成globalize2?

问题是我无法访问存储的内容:

代码语言:javascript
复制
>> Panel.first
=> #<Panel id: 1, name: "RT", description: "asd", proje....
>> Panel.first.name
=> nil
>> I18n.locale = nil
=> nil
>> Panel.first.name
=> nil

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2011-05-13 05:28:31

我相信你已经以某种方式解决了这个问题,但现在开始吧。您应该能够使用read_attribute方法来挖掘出您正在寻找的内容。

我刚刚使用以下代码将主表中的内容迁移到globalize2 translations表中。

  1. 将相应的translates行添加到模型中。
  2. config/initializers/globalize2_data_migration.rb中放置以下内容:

除非klass.count >0 translated_attribute_columns = klass.first.translated_attributes.keys klass.all.each do |p| attribs = {} translated_attribute_columns.each { |c| attribsc = p.read_attribute(c) },否则需要' Globalize‘模块Globalize模块ActiveRecord模块迁移def move_data_to_translation_table klass = self.class_name.constantize returnp.update_attributes(attribs) end end def move_data_to_model_table #查找模型中所有记录的所有转换后的属性。klass = self.class_name.constantize除非klass.count >0返回all_translated_attributes = klass.all.collect{|m| m.attributes} all_translated_attributes.each do |translated_record| #创建一个包含翻译后的列名及其值的散列。translated_attribute_names.inject(fields_to_update={}) do |f,name| f.update({name.to_sym => translated_recordname.to_s}) end #现在,使用散列更新实际模型的记录。klass.update_all(fields_to_update,{:id => translated_record'id'}) end

  • 创建了一个包含以下内容的迁移:

类TranslateAndMigratePages < ActiveRecord::Migration def self.up Page.create_translation_table!({ :title => :string,:custom_title => :string,:meta_keywords => :string,:meta_description => :text,:browser_title =>:say_with_time }) say_with_time('Migrating Page data to translation‘) do Page.move_data_to_translation_table end def self.down say_with_time('Moving Page translated values to main table') do Page.move_data_to_model_table end Page.drop_translation_table!end end

大量借鉴Globalize 3和refinerycms。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2995549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档