rake db:migrate使用globalize gem和rails 4.1.7失败

时间:2014-11-09 06:33:24

标签: ruby-on-rails-4 rails-activerecord pg globalize

我试图在Rails 4.1.7中使用globalize gem。 使用最新的RVM版本,os是Ubuntu 12.04,db是postgresql 9.3。

按照github上的readme.md中的说明,我在我的模型中添加了translates指令并搭建了一个迁移

class Ingredient < ActiveRecord::Base
    translates :name, :description
end

class CreateIngredientTranslations < ActiveRecord::Migration
  def up
    Ingredient.create.translation_table!({
        name: :string,
        descripion: :text
        }, {
          migrate_data: true
        })
  end
  def down
    Ingredient.drop_translation_table! migrate_data: true
  end
end

然后,当我做rake db:migrate时,我得到以下错误

PG::UndefinedTable: ERROR:  relation "ingredient_translations" does not exsist
LINE 5:                WHERE a.attrelid = '"ingredient_translations"...
                                          ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
                FROM pg_attribute a LEFT JOIN pg_attrdef d
                  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
               WHERE a.attrelid = '"ingredient_translations"'::regclass
                 AND a.attnum > 0 AND NOT a.attisdropped
               ORDER BY a.attnum
/home/kranz/.rvm/gems/ruby-2.1.4@recipes/gems/activerecord-4.1.7/lib/active_record/connection_adapters/postgresql_adapter.rb:822:in `async_exec'

这真的很奇怪。 谷歌搜索这种错误我在github找到了一张票 https://github.com/globalize/globalize/issues/288 2013年12月开业但仍未关闭,看起来非常相似;唯一的解决方案似乎是全局化代码中的黑客攻击,但我不想在该级别修补代码。 是由于postgres和globalize的结合,还是有其他解决方案呢?

0 个答案:

没有答案