0

我无法让它工作......即使使用 raw 或 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

结果

成功的 btn<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')} %>
4

1 回答 1

0

我认为这不是 html safe 的问题,而是 button_to 的 name 属性只接受纯文本。

<%= 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>文字的按钮,而不仅仅是粗体的你好。

使用 do 的方法是唯一的方法,这与通过 link_to 链接 glyphicons 时需要做的事情相同。

但你可以这样做。

<%= button_to(some_path(@etude), class: "btn btn-success") do %>
  glyphicon('heart','I love it')
<% end %>
于 2015-01-30T02:55:52.487 回答