4

我会先说这可能是错误地处理这个问题。我想要做的是使用data-属性将带有转换的 url 传递给 JS。

目前,我正在使用以下内容生成图像标签:

= cl_image_tag(image.asset.filename.to_s, transformation: "scroller", :"data-medium" => image.asset.filename.to_s)

产生这个:

<img src="http://res.cloudinary.com/bucket/image/upload/t_scroller/v1373070863/s1ufy3nygii85ytoeent.jpg" data-medium="s1ufy3nygii85ytoeent.jpg">

我想做的是让它输出这个(利用t_medium我设置的命名转换):

<img src="http://res.cloudinary.com/bucket/image/upload/t_scroller/v1373070863/s1ufy3nygii85ytoeent.jpg" data-medium="http://res.cloudinary.com/bucket/image/upload/t_medium/v1373070863/s1ufy3nygii85ytoeent.jpg">

目前,cl_image_tag通过使用正确配置的 URL 生成图像标签来完成繁重的工作。这很好,但是我似乎找不到任何关于如何将配置的 URL 输出为不带图像标记的字符串(用作data-medium属性)的文档。我可以手动配置 URL,但我想知道是否有更好的方法?

4

2 回答 2

9

您可以使用 cloudinary_url 帮助程序生成不带图像标签的 URL。例如:

cloudinary_url(image.asset.filename.to_s, transformation: "medium")

正如 zeantsoi 所说,如果您使用的是 CarrierWave,您还可以将上传器本身作为参数传递:

cloudinary_url(image.asset, transformation: "medium")
于 2013-07-08T07:37:37.577 回答
4

在 Tal Lev-Ami 的回答之上:

如果您需要在视图之外调用 cloudinary_url(例如在 api 的序列化程序模型中),您有 2 个选项:

  • 依靠“帮手”:helper.cloudinary_url
  • 或使用Cloudinary::Utils.cloudinary_url
于 2016-07-16T14:18:41.300 回答