我试图在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的结合,还是有其他解决方案呢?