Rails 3.1.3 から 3.2.1 に移行したところ、ホームページをロードするときに次のエラーが発生しました。
PGError: ERROR: relation "translations" does not exist
LINE 4: WHERE a.attrelid = '"translations"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"translations"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
これは、globalize3 gem が page_meta_tags テーブルと page_meta_tag_translations テーブルの間の関係を構築しようとしたときに発生します。Rails 3.1.3 ではすべて問題なく動作しました。新しい Active Record と globalize3 の非互換性が原因でしょうか? 誰でも同じことを持っていますか?
class PageMetaTag < ActiveRecord::Base
translates :title, :description, :keywords
accepts_nested_attributes_for :translations
end