链接在html.erb文件中的方法,在视图中显示HTML

时间:2014-05-16 05:52:53

标签: html ruby-on-rails erb linkify

抱歉,如果这是一个菜鸟问题,但我在@page实例变量上调用了以下方法,并且视图填充了html标签...

module PagesHelper

def linkify_page page
regex = /\[\[([^|]+)\|(\w+)\]\]/
 page.text.gsub(regex) do |link|
  caps = regex.match(link)
  linked_page = page.adventure.pages.where(:name => caps[2]).first
  link_to(caps[1], adventure_page_path(page.adventure_id, linked_page.id))
 end
 end
 end

show.html.erb

<%= linkify_page(@page) %>

结果在视图中......

I can't wait to <a href="/adventures/1/pages/2">see the end</a>

2 个答案:

答案 0 :(得分:0)

html_safe要转义HTML代码

<%= linkify_page(@page).html_safe %>

使用raw

<%= raw linkify_page(@page) %>

使用等同于<%==

raw
<%== linkify_page(@page) %>

有关详细信息,请参阅这些Guides

答案 1 :(得分:0)

使用rawhtml_safe

原始

<%= raw linkify_page(@page) %>

html_safe

<%= linkify_page(@page).html_safe %>