首页 > 解决方案 > Rails 5、Postgres、不带连字符的 UUID

问题描述

我们最近将 Rails 4.2 应用程序升级到 Rails 5.0(我们最终会升级到 Rails 5.2)。

在 Rails 4.2 中,我们使用了在 Rails 5 中没有使用的 UUID gem。

目前,Rails 5/Postgres 的问题在于它在带有连字符 ( sd5e1bcd-da49-43c6-bc87-381232e0101b) 的 UUID 中生成。从 Postgre 的角度来看,它平等地对待带有和不带有连字符的 UUID。但是,我们已与外部应用程序集成,在这些应用程序中,我们引用具有不带连字符的 UUID 的 UUID 用于现有记录。为此,我们需要 Rails 的 UUID 始终不带连字符。

问题是,是否可以在 Rails/PG gem 级别上始终返回不带连字符的 UUID?

谢谢

标签: postgresqlruby-on-rails-5uuid

解决方案


根据共享的描述,您似乎必须开发一个自定义逻辑来将 UUID 从 db 映射到外部应用程序。

解决方法是:

uuid().replace(/-/g, '')

请注意,上述解决方案必须在应用程序级别完成。


推荐阅读