Rails/Dragonfly: 是否可以解码 URL (/media/W1siZiIsInRzYW...) 来获取它引用的模型实例?

Rails/Dragonfly: is it possible to decode URL (/media/W1siZiIsInRzYW...) to get the model instance it refers to?

这就是我想要完成的:

在带有信息流墙的外联网上,用户只需输入 non-formatted 文本(非样式,只是 \n 和 links 识别)。

但很多时候,用户希望将 link 添加到存储在同一个 Extranet 中的文档(使用蜻蜓)。显然,link 很难显示(例如:https://extranet.com/media/l0ngUiD/original_filename.pdf?sha=31310881DAEF1)。 该文档引用了一个 Document 实例,它有一个很好的标题,例如:"Original Filename (PDF)" 我希望那些 link 被(自动)替换为

<a href="https://extranet.com/media/l0ngUiD/original_filename.pdf?sha=31310881DAEF1">Original Filename (PDF)</a>

问题是:如何使用 UID 和 sha 查找该文档引用的模型和文档。

我猜这是可能的,因为 Dragonfly 解码 url,但我找不到如何解码(代码中的注释不多)。

变体的 UID 是 Base64 编码的,因此在解码 UID 时,您将得到一个 JSON 编码的 Dragonfly 处理器步骤数组。

这里是来自实时数据库的实际示例:

uid = 'W1siZiIsIjIwMTUvMDcvMDkvMDkvMTMvMDIvOTE3LzE5NDg3ODk0MDc1XzE4NGYzMjc0MWVfay5qcGciXV0'
Base64.decode64 uid
# => "[[\"f\",\"2015/07/09/09/13/02/917/19487894075_184f32741e_k.jpg\"]]"

每个步骤都是一个数组,第一个元素是步骤的操作,其余元素是步骤的参数。