html_safe 无法使用 rails

html_safe not working with rails

我无法让它工作...即使使用原始或 html_safe

查看

<%= button_to(glyphicon('heart', 'I love it !'), some_path, class: "btn btn-success")%>

助手

def glyphicon(glyph, text = nil)
    html = "<i class=\"glyphicon glyphicon-#{glyph}\"></i>"
    html += " #{text}" if text
    html.html_safe
end

结果

之后 <i class=" /> 的成功按钮

以下工作(我已经做了很长时间),但是额外的 do 语法很烦人...

<%= button_to(some_path(@etude), class: "btn btn-success") do %>
  <i class="glyphicon glyphicon-heart"></i> I love it !
<% end %>

编辑

找到更紧凑的语法:

<%= button_to(some_path(@etude), class: "btn btn-success"){
      glyphicon('heart', 'I love it')} %>

我不认为 html 安全有问题,button_to 的名称属性只接受纯文本。

<%= button_to("<b>hello</b>".html_safe, 'http://www.google.com', :class => 'button', :method => 'get') %>

<%= button_to("<b>hello</b>", 'http://www.google.com', :class => 'button', :method => 'get') %>

两者都生成一个按钮,上面写着 <b>hello</b>,而不仅仅是粗体的 hello。

使用 do 的方法是唯一的方法,这与通过 link_to.

链接字形图标时需要做的相同

但你可以这样做。

<%= button_to(some_path(@etude), class: "btn btn-success") do %>
  glyphicon('heart','I love it')
<% end %>