【问题标题】:Dynamically adding paper_trail to translations in Rails5在 Rails5 中动态添加 paper_trail 到翻译中
【发布时间】:2017-10-02 14:45:20
【问题描述】:

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

  • Rails 5.1.4
  • Ruby 2.4.1(带 RVM)
  • 全球化@大师
  • PaperTrail 用于翻译版本控制

我创建了一个pull-request,应该将rails 5 功能添加到globalize-versioning gem。

我已经这样做了:

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

现在项目中的所有测试都失败了,我不知道如何将 paper_trail 功能添加到 globalize 的翻译对象中。

【问题讨论】:

  • 我“仅仅是”paper_trail 和 globalize 和 globalize-versioning 的用户,所以我对如何将功能注入这些不同模型的概念有点不知所措。

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


【解决方案1】:

您错误地更改了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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多