如何在raw(或simple_format)文本中显示rails link_to

时间:2012-09-30 12:34:52

标签: ruby-on-rails ruby-on-rails-3

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

simple_format(@image.description)

raw(@ image.description)将主要与我想的相同。如何添加link_to助手以及该文本的链接?我正在搜索类似下面的文字(将是@ image.description):

文字文字文字。

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

@ image.link将成为链接。我怎么能这样做?

2 个答案:

答案 0 :(得分: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) %>!

答案 1 :(得分: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!"