如何使用Cloudinary输出带有转换的URL作为字符串?

时间:2013-07-07 18:37:01

标签: ruby-on-rails haml cloudinary

我将通过说这可能接近这个错误来作为序言。我要做的是使用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作为没有图像标记的字符串输出的文档(用作data-medium属性)。我可以手动配置URL,但我想知道是否有更好的方法?

2 个答案:

答案 0 :(得分:9)

您可以使用cloudinary_url帮助程序生成没有image标记的URL。例如:

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

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

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

答案 1 :(得分:4)

在Tal Lev-Ami的回答之上:

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

  • 依靠“帮助者”:helper.cloudinary_url
  • 或使用Cloudinary::Utils.cloudinary_url