2

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
4

1 に答える 1

1

globalize3 ベータ版を使用してみてください:

gem 'globalize3', '0.2.0.beta8'
于 2012-02-07T11:44:28.910 に答える