【问题标题】:Rails 5, Postgres, UUIDs without hyphensRails 5、Postgres、不带连字符的 UUID
【发布时间】:2018-06-12 22:57:20
【问题描述】:

我们最近将 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?

谢谢

【问题讨论】:

  • 不带连字符的 UUID - 你的意思是你的应用需要十进制的 UUID? itu.int/rec/T-REC-X.667-201210-I/en 第 6.5.3 节需要十六进制表示中的破折号。向其他组件的供应商投诉并要求他们修复它以接受 UUID。
  • 感谢您的来信。另一个应用程序是我们自己的:),但问题是它在很多地方都使用过,并且很难使用连字符版本将它们重置。我只是想找到一种与 MySQL/active_uuid 版本保持一致的通用方法。

标签: postgresql ruby-on-rails-5 uuid


【解决方案1】:

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

解决方法是:

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

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

【讨论】:

  • 感谢罗汉的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 2017-12-17
  • 2017-07-23
  • 1970-01-01
  • 2011-01-24
相关资源
最近更新 更多