从Rails4升级到Rails5时如何解决activeuuid gem错误

时间:2019-05-02 11:14:34

标签: rubygems deprecated ruby-on-rails-5.2 alias-method-chain rails-4-upgrade

我正在将应用程序从滑轨4更新到滑轨5。我的应用程序使用的是activeuuid gem。 activeuuid gem在内部使用alias_method_chain,并且在Rails 5中不推荐使用此方法。现在,当我尝试启动Rails控制台时,出现错误-

未定义的ActiveRecord :: ConnectionAdapters :: Column:Class方法“ alias_method_chain”(NoMethodError)

无论如何,我是否可以继续在rails 5中使用activeuuid宝石并且不需要做任何返工?

2 个答案:

答案 0 :(得分:0)

  

Rails 5内置了对UUID主键的支持,因此理想情况下,您应该从此gem迁移下来...

尝试仅从您的项目中删除此gem,一切都可以。

来源:https://github.com/jashmenn/activeuuid/issues/80

但是,如果您想继续使用此gem,则可以找到(或创建自己的)分叉。对original gem的最后一次提交是在4年前(Rails 5发布之前)。但我明白了 forks实现了对Rails 5的支持。

答案 1 :(得分:0)

由于我没有收到任何针对此问题的解决方案,经过四处搜寻,我找到了以下解决方案-

  1. 从应用程序中删除了活跃的宝石。
  2. 使用Ruby的SecureRandom类-Rails 5 Mysql UUID
  3. 来实现uuid。
  4. 如果有人发现由于Activeuuid将数据库列限制为16个字节而在保存记录方面出现问题,则可以使用SecureRandom.hex(8).encode(“ UTF-8”)