2015-01-30 3 views
0

я не могу управлять, чтобы заставить его работать ... даже с использованием сырого или html_safehtml_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 %> 

EDIT

Нашли более компактный синтаксис:

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

ответ

0

Я не думаю, что проблема с html safe, а атрибут name для 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>, написанные на ней, а не просто привет жирным шрифтом.

Метод, использующий do, является единственным способом сделать это, это то же самое, что вам нужно делать при связывании глификонов через link_to.

Но вы могли бы это сделать.

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

Да, конечно, я использую помощник глификона внутри блока. Но может ли быть способ переопределить помощник 'button_to', чтобы разрешить html? –

+0

не уверен, если это возможно, извините – Dontreadonme

Смежные вопросы