将文本字段中的图像包装到image_tag中

时间:2013-12-29 11:32:37

标签: ruby-on-rails ruby

我想创建一个帮助器或将model.rb更改为:

帖子模型有一个文本字段,其中包含所有用新行分隔的网址。 在创建或更新时,rails会在找到url时扫描此字段:

http://i.imgur.com/imanimage.png
http://i.imgur.com/anotherimage.png

然后它按原样离开它们,但在show动作中它将它们呈现为:

= image_tag('http://i.imgur.com/imanimage.png', class: 'my-image-class')
= image_tag('http://i.imgur.com/anotherimage.png', class: 'my-image-class')

可能帮助方法可以做到这一点。

2 个答案:

答案 0 :(得分:0)

如果您要在数据库中保存这些URL,那么它应该是一个非常简单的过程:

#app/models/image_url.rb
Class ImageURL < ActiveRecord::Base
end

#app/controllers/image_urls_controller.rb
def show
    @url = ImageURL.find(params[:id])
end

#app/views/image_urls/show.html.erb
<%= image_tag(@url, class: 'my-image-class')

如果您在问题中添加更多上下文,我将能够为您提供更精确的答案!

答案 1 :(得分:0)

文本字段是否存储除网址以外的任何内容?如果是,您应该考虑使用正则表达式创建帮助程序以获取所有网址并将其更改为<img src=''/>

如果没有,您可以在haml / erb文件中使用。

Model.text.each_line do |m| 
  image_tag(m, class: 'my_img') 
end 

参考:http://ruby-doc.org/core-2.1.0/String.html#method-i-lines