0

例如,我有一个文本块,其中包含字符串“{image=filename.jpg}”的几个实例,其中 filename.jpg 可以是任何文件名,我想用图像标签替换 {} 中的所有内容使用文件名找到图像的位置,例如 Model.find_by_attachment_file_name("filename.jpg")。

是否有可能做到这一点?

编辑:

示例输入:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 

{image=some_file.png}

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

期望的输出:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 

<img src="/system/attachments/model/some_file.png">

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

通过使用可以找到所需输出的图像标签的 src 属性Model.find_by_model_attachment_file_name("some_file.png").model_attachment.url

也就是说,类似:

string.gsub(/{image=.*}/, "<image src=#{ContentAttachment.find_by_content_image_file_name([???]).content_image.url(:main)}")

其中 [???] 被替换为对被 gsub 替换的内容的引用。

或者,如何在 gsub 的第二个参数中引用第一个参数?

4

1 回答 1

4

不是将第二个参数设置为 gsub,而是将一个块附加到 gsub 来完成这项工作。

string.gsub(/\{image=(.*)\}/){
  # $1 will be "some_file.png"
  "<image src=#{ContentAttachment.find_by_content_image_file_name([$1]).content_image.url(:main)}"
}
于 2013-08-15T05:06:18.173 回答