我正在尝试将 globalize gem 与 Rails 4.1.7 一起使用。使用最新的 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 的结合还是有其他解决方案?