2012-05-09 78 views
6

Chcę dodać ikonę do przycisku w rubinach na szynach. Obecnie Próbowałem następujące:Dodawanie ikony Bootstrap do przycisku w Ruby on Rails

<%= button_to raw("<i class=\"icon-arrow-up\"></i>"), 
{:controller => 'events', :action => "upvoteEvent", :method => "put", 
:id => @event.id, :uid => current_user.id}, 
{:class => "btn btn-success"}%> 

która produkuje następujące HTML:

<form action="/events/upvoteEvent?id=17&amp;method=put&amp;uid=7" class="button_to" method="post"><div><input class="btn btn-success" type="submit" value="<i class="icon-arrow-up"></i>" /><input name="authenticity_token" type="hidden" value="FsVUPiYl0cK666pn8hqo6AU9/HK0CweZ/nsXqwOWZzU=" /></div></form> 

Mam następnie roztwór zamieszczonych tutaj: https://stackoverflow.com/a/10468935/1385324, ale to nie będzie działać dla mnie. Przetestowałem także, że działa Bootstrap CSS, po prostu wstawiając ikonę gdziekolwiek indziej na stronie.

Dzięki za pomoc!

+0

nie możesz ustawić ikony dla pomocnika 'button_to'. Wymagałoby to wywołania '.html_safe' lub' raw() ', ale nie jest to możliwe, o ile wiem, ponieważ ciąg, który musisz wywołać, jest niedostępny. –

Odpowiedz

-5

Dzięki za pomoc chłopaki, skończyło się modyfikując własne HTML-wyjście, które sprawiły, że działa:

<form action="/events/upvoteEvent?id=<%= @event.id.to_s%>&amp;method=put&amp;uid=<%= current_user.id.to_s%>" class="button_to" method="post"> 
    <button type="submit" value="upvote" class="btn btn-success"> 
     <i class="icon-arrow-up"></i> 
    </button> 
</form> 
0

Jeśli spojrzysz prosto na samo dno tego page on the Twitter Bootstrap website, zauważysz, że są tam przyciski z ikonami. Możesz wtedy zobaczyć źródło, aby zobaczyć, jak to zrobili - powiedziałbym, że byłby to świetny punkt wyjścia.

1

Jeśli jesteś po prostu patrząc na link, który wygląda jak przycisk, można zrobić coś takiego:

<%= link_to 'Upvote <i class="icon-arrow-up"></i>', 'events/upvote', class: 'btn btn-success' %> 

Jeśli chcesz użyć go do postaci, można zrobić coś takiego z button_tag , submit_tag lub f.submit.

<%= submit_tag 'Upvote <i class="icon-arrow-up"></i>', html: { class: 'btn btn-success' } %> 
12

Można też spróbować:

<%= link_to 'Upvote <i class="icon-arrow-up"></i>'.html_safe, 'events/upvoteEvent', class: => 'btn btn-success' %> 

lub dla true submit button, to:

<%= button_tag(:type => 'submit', :class => 'btn btn-success') do %> 
Upvote <i class="icon-up-arrow icon-white"></i> 
<% end %> 
0

Być tter i czystszy sposób będzie:

= link_to 'events/upvoteEvent', class: => 'btn btn-success' do 
    Upvote 
    <i class="icon-arrow-up"></i>'.html_safe