动态地将paper_trail添加到Rails5中的翻译

时间:2017-10-02 14:45:21

标签: ruby ruby-on-rails-5 paper-trail-gem globalize3

我有一个应用程序可以翻译一些模型数据,我想对这些数据进行版本控制。所以这是我的设置:

  • Rails 5.1.4
  • Ruby 2.4.1(带RVM)
  • Globalize @ master
  • PaperTrail版本翻译

我创建了pull-request,应该将{5}功能添加到globalize-versioning gem

我已经这样做了:

  • 更新gemspec和Gemfile以使用最新的宝石。
  • 修复已弃用的ruby调用
  • 更新.travis.yml以便运行测试。

现在项目中的所有测试都失败了,我无法弄清楚如何将paper_trail功能添加到globalize的翻译对象中。

1 个答案:

答案 0 :(得分:2)

您错误地更改了alias_method_chain

alias_method :versioning, :setup_translates!
alias_method :setup_translates!, :versioning

这只是版本控制和setup_translates的别名! alias_method_chain实际尝试的是确保覆盖方法仍然可以调用。

所以这个:

alias_method_chain :setup_translates!, :versioning

应更改为:

alias_method :setup_translates_without_versioning!, :setup_translates!
alias_method :setup_translates!, :setup_translates_with_versioning!

如果这样可以解决问题。

来源:alias_method_chain