【问题标题】:globalize2 - create_translation_table! and options for columnsglobalize2 - 创建翻译表!和列选项
【发布时间】:2011-02-16 08:15:57
【问题描述】:

你能告诉我 - 如何使用方法 create_translation_table! globalize2 的附加选项,例如 :null => false, :default => "abc" ???

【问题讨论】:

    标签: ruby-on-rails ruby globalize2


    【解决方案1】:

    尝试以下内容

    Post.create_translation_table! :title => :string, :text => :text, {:null=>false, :default=>"abc"}
    

    【讨论】:

      【解决方案2】:

      这是当前版本globalize2中的方法定义:

        def create_translation_table!(fields)
          translated_attribute_names.each do |f|
            raise MigrationMissingTranslatedField, "Missing translated field #{f}" unless fields[f]
          end
      
          fields.each do |name, type|
            if translated_attribute_names.include?(name) && ![:string, :text].include?(type)
              raise BadMigrationFieldType, "Bad field type for #{name}, should be :string or :text"
            end
          end
      
          self.connection.create_table(translation_table_name) do |t|
            t.references table_name.sub(/^#{table_name_prefix}/, "").singularize
            t.string :locale
            fields.each do |name, type|
              t.column name, type
            end
            t.timestamps
          end
      
          self.connection.add_index(
            translation_table_name, 
            "#{table_name.sub(/^#{table_name_prefix}/, "").singularize}_id",
            :name => translation_index_name
          )
        end
      

      如您所见,t.column 声明中没有传递第三个参数。因此 globalize2 不会在没有补丁的情况下支持这个。

      我的建议是手动创建迁移。

      【讨论】:

        猜你喜欢
        • 2011-01-25
        • 2011-07-22
        • 2011-05-20
        • 2011-01-07
        • 2010-12-20
        • 2016-01-06
        • 2013-02-09
        • 1970-01-01
        • 2011-09-05
        相关资源
        最近更新 更多