ruby-on-rails - 未定义的方法 `create_translation_table!'

标签 ruby-on-rails globalize3

我有一个新的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”未加载。

有什么办法吗?

最佳答案

您必须添加

translates :attributename

运行迁移之前,将其添加到您的Engine模型文件中。 (将:attributename替换为您想要翻译的属性)。这为我解决了。

关于ruby-on-rails - 未定义的方法 `create_translation_table!',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13907042/

相关文章:

ruby-on-rails - before_filter 与设计

ruby-on-rails - 通过pluck返回关联对象的id

ruby-on-rails - Globalize3——将翻译保存到数据库

ruby-on-rails - 在Rails中的Globalize3表上简单搜索

ruby-on-rails - globalize3 和 easy_globalize3_accessors 验证

ruby-on-rails - form_for 混合 id 和 locale 参数

mysql - 使用 Hook 与模型运行的关注方法的性能差异?

ruby-on-rails - rails : How to direct to results page on form 'submit'

ruby-on-rails - 如何使用 Ruby on Rails 查找今天、昨天等的记录?

ruby-on-rails - 在 Rails 中以不同语言输入字段值