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\"]]"
每个步骤都是一个数组,第一个元素是步骤的操作,其余元素是步骤的参数。
这就是我想要完成的:
在带有信息流墙的外联网上,用户只需输入 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\"]]"
每个步骤都是一个数组,第一个元素是步骤的操作,其余元素是步骤的参数。