2012-12-17 19 views
7

Mam nowy silnik szyny i chcę używać globalizatora3. Zrobiłem to w moim lib // engine.rb:niezdefiniowana metoda "create_translation_table!"

require 'globalize3' 

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

Teraz staram się stworzyć migrację takiego:

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 

I mam ten błąd:

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

Myślę, że plik "lib/globalize/active_record/migration.rb" nie został załadowany.

Jakieś rozwiązanie?

Odpowiedz

19

Trzeba dodać

translates :attributename 

do pliku modelu silnika przed uruchomieniem migracji. (Zamień: attributename z atrybutem, który chcesz przetłumaczyć). To naprawiło to dla mnie.

+0

To bardzo mi pomogło! W końcu to działało, to był brakujący element. – Vinozio

+0

dziękuję bardzo Muntasim –

+0

Nice shot :) naprawiłam mój problem :) – user1713964

1

Spróbuj

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

ale klucz obcy będzie simplecms_page_id, ręcznie zmienić go z powrotem do page_id

Powiązane problemy