Rails使用text和link_to创建变量

时间:2010-12-26 20:17:38

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

我正在尝试这样做:

headline = 'Created a new' && link_to('Set', set_path(set))

也尝试过:

headline = 'Created a new' + link_to('Set', set_path(set))

但它输出不像:

Created a new <a href="xxxx">Set</a>

想法? thxs

2 个答案:

答案 0 :(得分:1)

Rails有一个漂亮的XSS预防功能,可能会阻碍你的到来。在输出字符串之前,它会默认编码在其中找到的任何HTML,除非它们提前明确标记为安全字符串。 link_to在其输出上运行html_safe!,这就是通常不对其进行编码的原因,但将其添加到不安全的字符串'Created a new'会删除该HTML安全属性。

尝试致电:

headline.html_safe!
设置后立即

当然,由于问题没有说明你得到的输出而不是你想要的输出,我不能完全确定这是问题所在。但这是我能用我所做的最好的事情:)

答案 1 :(得分:0)

我会直接把它放在你的视野中或帮助中。您还可以稍微简化link_to

<%= 'Created a new' + link_to('Set', set) %>
# or 
<%= "Created a new #{link_to('Set', set)}" %>
# or 
Created a new <%= link_to('Set', set) %>
相关问题