我有一个新的rails引擎,我想使用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 / migration.rb'。
任何解决方案?
答案 0 :(得分:21)
你必须添加
translates :attributename
在运行迁移之前,到Engine模型文件。 (替换:具有您要翻译的属性的attributename)。这为我解决了。
答案 1 :(得分:1)
试试这个
SimpleCms::Page.create_translation_table! title: :string, body: :body
但外键将变为simplecms_page_id
,我手动将其更改回page_id
答案 2 :(得分:1)
就我而言,globilize
gem 无法正常工作,因为 traco
gem 也在 Gemfile 中。删除 traco
修复了错误。所以我想只允许使用一种翻译宝石