Подтвердить что ты не робот

Rails и bootstrap. Добавьте теги HTML в текст кнопки отправки.

У меня есть форма для кнопки like/unlike с использованием ajax:

= form_for like, :html => { :method => :delete}, :remote => true do |f|
= f.submit pluralize(@video.likes.count, 'like'), :class => "btn btn-warning btn-mini", "data-disable-with"=> "Just a moment..."

Форма отлично работает.

Я хотел бы добавить значок перед текстом в кнопку отправки. Код haml для добавления значка следующий (twitter bootstrap):

%i.icon-heart.icon-white

Есть ли способ добавить этот html к кнопке? Я попытался добавить его как простой html, но рельсы отображали его как текст.

UPDATE

Мне удалось инкапсулировать кнопку отправки в классе span, который содержит значок и соответствующий стиль. Теперь мне нужно удалить каждый стиль на кнопке...

%span.btn.btn-danger.btn-mini
  %i.icon-heart.icon-white
  = f.submit pluralize(@video.likes.count, 'like')
4b9b3361

Ответ 1

Благодаря ismaelga, я нашел этот SO вопрос.

Это решение:

<%= button_tag(type: 'submit', class: "btn btn-primary") do %>
 <i class="icon-ok icon-white"></i> Save
<% end %>

Ответ 2

Попробуйте это. Я не тестировал, но думаю, что можно сделать что-то вроде этого.

= f.submit :class => "btn btn-warning btn-mini", "data-disable-with"=> "Just a moment..." do
  %i.icon-heart.icon-white
  = pluralize(@video.likes.count, 'like')
end

Итак, это было возможно, если вы используете simple_form. Извините.

Итак, еще одна попытка -

= f.submit "#{pluralize(@video.likes.count, 'like')} <i class='icon-heart icon-white'/>".html_safe, :class => "btn btn-warning btn-mini", "data-disable-with"=> "Just a moment..."

Ответ 3

Ответ Justin D тоже помог мне. Если вы приезжаете сюда из Google и ищете реализацию Slim, вы можете сделать это следующим образом:

= button_tag(type: 'submit', class: 'btn btn-default') do
    span.glyphicon.glyphicon-floppy-disk>
    | Save
end

Тонкие пользователи распознают необходимость >.

Это работало для меня с Rails 4.1.5, Ruby 2.1.2 и bootstrap-sass 3.2 по состоянию на 24 сентября 2014 года.

Ответ 4

Другим вариантом может быть button вместо submit

см. документацию Rails Кнопка FormBuilder #

= f.button :class => "btn btn-warning btn-mini" do
  %i.icon-heart.icon-white
    = pluralize(@video.likes.count, 'like')

Ответ 6

Пожалуйста, попробуйте приведенный ниже код. Он работает

<%= f.submit :class => "btn btn-success btn-mini" %>