0

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

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

无论如何我可以继续在rails 5中使用activeuuid gem并且不需要做任何返工吗?

4

2 回答 2

0

Rails 5 内置了对 UUID 主键的支持,所以理想情况下你应该从这个 gem 迁移出去......

尝试从您的项目中删除此 gem,一切都必须没问题。

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

但是,如果您想继续使用这个 gem,您可以找到(或创建自己的)fork。最后一次提交原始 gem是在 4 年前(在 rails 5 发布之前)。但是我看到 实现了对 rails 5 的支持的分叉。

于 2019-05-04T05:59:07.363 回答
0

由于我没有收到任何解决此问题的方法,经过四处搜索后,我得出了以下解决方案-

  1. 从应用程序中删除了 activeuuid gem。
  2. 使用 Ruby 的 SecureRandom 类实现 uuid - Rails 5 Mysql UUID
  3. 如果有人在将记录保存为 activeuuid 时发现问题将数据库列限制为 16 字节,可以使用 SecureRandom.hex(8).encode("UTF-8")
于 2019-05-09T08:20:55.207 回答