【问题标题】:replace tags in text with images用图像替换文本中的标签
【发布时间】:2017-03-28 09:51:55
【问题描述】:

我有一个带有 ##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的span:

...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 ...

【问题讨论】:

    标签: ruby-on-rails replace gsub


    【解决方案1】:

    这是我想出的解决方案:

    <% @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 %>
    

    可能不是最优雅的,但它对我来说很好。

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 2010-11-24
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 2017-06-28
      相关资源
      最近更新 更多