用图像替换文本中的标签
replace tags in text with images
我有一段带有 ##imageset## 标签的文本,我想将其替换为实际的图像集图像 (image_tag)。
这是我的视图代码的样子:
<% @topictext = topic.text.gsub!(/##imageset##/).with_index { |iset,i|
if topic.topic_imagesets.includes(:imageset).order(:position)[i] then
topic.topic_imagesets.includes(:imageset).order(:position)[i].imageset.imageset_pictures.order(:position).each do |pic|
'<span>'+image_tag(pic.picture.image.thumb)+'</span>’
end
end
} %>
<%= @topictext.html_safe if @topictext %>
结果是,标签被替换为|pic|这是 ImagesetPictures 的记录,而不是实际 imageset_pictures.picture image_tag:
的范围
...takimata sanctus est Lorem ipsum dolor sit amet. [#<ImagesetPicture id: 269, imageset_id: 46, picture_id: 280,...>, #<ImagesetPicture id: 268, imageset_id: 46, picture_id: 236,...>] Lorem ipsum dolor sit amet, consetetur ...
这是我想出的解决方案:
<% @topictext = topic.text.gsub!(/##imageset##/).with_index { |iset,i|
if topic.topic_imagesets.includes(:imageset).order(:position)[i] then
topic.topic_imagesets.includes(:imageset).order(:position[i].imageset.imageset_pictures.order(:position).map{ |p|
'<span>'+image_tag(p.picture.image_en.thumb)+'</span>'}.join("")
end
} %>
<%= @toptext.html_safe if @toptext %>
可能不是最优雅的,但对我来说很好用。
我有一段带有 ##imageset## 标签的文本,我想将其替换为实际的图像集图像 (image_tag)。
这是我的视图代码的样子:
<% @topictext = topic.text.gsub!(/##imageset##/).with_index { |iset,i|
if topic.topic_imagesets.includes(:imageset).order(:position)[i] then
topic.topic_imagesets.includes(:imageset).order(:position)[i].imageset.imageset_pictures.order(:position).each do |pic|
'<span>'+image_tag(pic.picture.image.thumb)+'</span>’
end
end
} %>
<%= @topictext.html_safe if @topictext %>
结果是,标签被替换为|pic|这是 ImagesetPictures 的记录,而不是实际 imageset_pictures.picture image_tag:
的范围...takimata sanctus est Lorem ipsum dolor sit amet. [#<ImagesetPicture id: 269, imageset_id: 46, picture_id: 280,...>, #<ImagesetPicture id: 268, imageset_id: 46, picture_id: 236,...>] Lorem ipsum dolor sit amet, consetetur ...
这是我想出的解决方案:
<% @topictext = topic.text.gsub!(/##imageset##/).with_index { |iset,i|
if topic.topic_imagesets.includes(:imageset).order(:position)[i] then
topic.topic_imagesets.includes(:imageset).order(:position[i].imageset.imageset_pictures.order(:position).map{ |p|
'<span>'+image_tag(p.picture.image_en.thumb)+'</span>'}.join("")
end
} %>
<%= @toptext.html_safe if @toptext %>
可能不是最优雅的,但对我来说很好用。