Неопределенный метод `create_translation_table!'

У меня новый движок рельсов, и я хочу использовать globalize3. Я сделал это в моей lib // engine.rb:

require 'globalize3'

module SimpleCms
  class Engine < ::Rails::Engine
  end
end

Теперь я пытаюсь создать миграцию следующим образом:

class CreatePages < ActiveRecord::Migration
  def up
    create_table :pages do |t|
      t.string :path
      t.timestamps
    end
    Page.create_translation_table! title: :string, body: :body
  end

  def down
    drop_table :pages
    Page.drop_translation_table!
  end
end

И у меня есть эта ошибка:

undefined method `create_translation_table!' for #<Class:0x00000001d5ca18>

Я думаю, что файл 'lib / globalize / active_record /igration.rb' не загружен.

Любое решение?

3 ответа

Вы должны добавить

translates :attributename

в файл модели двигателя перед запуском миграции. (Замените:attributetename на атрибут, который вы хотите перевести). Это исправило это для меня.

Попробуй это

SimpleCms::Page.create_translation_table! title: :string, body: :body

но внешний ключ станет simplecms_page_idЯ вручную изменить его обратно на page_id

В моем случае, globilizegem работал некорректно, потому что gem также был в Gemfile. Удаление tracoисправлена ​​ошибка. Так что я предполагаю, что можно использовать только один из драгоценных камней перевода

Другие вопросы по тегам