2

我有一个带有属性 :description 的图像模型,它是一个文本,格式为 html 文本(例如,文本中有一些
),我在视图中显示如下:

simple_format(@image.description)

我认为 raw(@image.description) 将主要做同样的事情。如何添加带有链接到该文本的 link_to 助手?我正在搜索类似以下文本的内容(将是@image.description):

文字文字文字文字。

文本文本 #{link_to "Text", @image.link)

@image.link 将是链接。我怎样才能做到这一点?

4

2 回答 2

1

使用 ERB:

<%= raw ERB.new(@image.description).result(binding) %>

将其包装在辅助方法中:

module ApplicationHelper
  def simple_format(content)
    ERB.new(content).result(binding).html_safe
  end
end

并像这样使用它:

<%= simple_format(@image.description) %>

您可以用于图像描述的一些示例内容可能是:

Check out <%= link_to "the first image", image_path(1) %>!
于 2012-09-30T12:45:13.627 回答
0

你可以用这段代码做到这一点

link_to raw(@image.description), @image.link

如果您只需要选择一个随机单词:

words = @image.description.split

link_to raw(words.sample), @image.link

更新:

例如,当您创建描述时,您可以将特殊符号添加到可以用作链接的单词中,例如它可以是括号:

@image.description = This my description with link (Hello) you can follow it!

@image.description.gsub(/\(([^\)]+)\)/, link_to('\1', @image.link))

它将产生:

"This my description with link <a href=\"/\">Hello</a> you can follow it!"
于 2012-09-30T12:36:37.810 回答