Добавление иконки кнопки Twitter Bootstrap в button_to в Rails

Я работаю черезГибкая веб-разработка с Rails книга, но я использовал Twitter Bootstrap вместо пользовательского стиля из книги. У меня проблемы с добавлением значка через GLyphonics вbutton_to метод. Мой код выглядит так:

<code><%= button_to <i class="icon-search icon-white">Add To Cart</i>, 
              line_items_path(product_id: product), 
              class: "btn btn-success" %>
</code>

Я пробовал довольно много вариантов, но, похоже, не могу заставить его работать правильно.

 tim peterson06 мая 2012 г., 06:35
Знаете ли вы, если какой-либо из CSS Twitter Bootstrap работает? Я предполагаю, что это проблема пути к файлу, возможно, глифик находится не в нужной папке. Если вы просто делаете чистый HTML, а не Ruby, появится ли следующий значок поиска ?:<i class="icon-search icon-white">Add To Cart</i>

Ответы на вопрос(8)

<%= link_to(line_items_path(product_id: product),
    method: :put,
    class: 'btn btn-success') do %>
    <%= content_tag('i', nil, class: 'icon-search icon-white') %> Add To Cart
<% end %>

Надеюсь это поможет

 22 нояб. 2012 г., 16:46
рабочий ответ, но проблема файла, описанная в комментариях, вероятно, больше причина
 16 дек. 2012 г., 05:26
Примечание: этот ответ работает только с включенным JavaScript. Если в браузере отключен JavaScript, ссылка будет вызываться через метод GET.

button_to генерирует<input type='submit' /> элемент, который не допускает HTML в поле значения.

Смотрите также:тип ввода = & quot; отправить & quot; Против кнопки тега они взаимозаменяемы?

Лучшая альтернатива в этой ситуации - заставитьlink_to PUT (или POST):

<%= link_to raw("<i class=\"icon-search icon-white\">Add To Cart</i>"), 
          line_items_path(product_id: product), 
          class: "btn btn-success",
          method: :put %>
 07 авг. 2012 г., 12:11
Это ^^^ правильный ответ. Не один ОП принят.
 08 мар. 2013 г., 02:03
За исключением случаев, когда мы говорим о ссылке / кнопке для удаления. Нам нужна кнопка ОТПРАВИТЬ, чтобы метод HTML работал.stackoverflow.com/questions/4606860/…
 06 нояб. 2013 г., 10:08
Это должен быть принятый ответ.
 26 дек. 2013 г., 16:51
Метод button_to предпочтительнее, чем link_to. Причины объясненыhere, Смотрите мой ответ о том, как использовать его с иконкой.

Я использую вспомогательный метод для создания содержимого button_to flag. Завершилось использованием следующего в моем вспомогательном методе (путь определен заранее):

form_tag path, :method => :post do
  button_tag do
    content_tag :i, 'Flag as inappropriate', :class => 'icon-flag flag_content'
  end
end
Решение Вопроса

<%= button_to raw("<i class=\"icon-search icon-white\">Add To Cart</i>"), 
          line_items_path(product_id: product), 
          class: "btn btn-success" %>

Заключите ярлык кнопки в двойные кавычки, избегайте двойных кавычек в вашемi тег, и, наконец, обернуть все вraw() позвоните, чтобы убедиться, что HTML отображается правильно.

В качестве альтернативы вы можете использоватьhtml_safe:

<%= button_to "<i class=\"icon-search icon-white\">Add To Cart</i>".html_safe, 
          line_items_path(product_id: product), 
          class: "btn btn-success" %>

Хорошая мысль от @jordanpg: у вас не может быть HTML в значении кнопки, поэтому его решение более подходящее и должно получить одобренный статус. html_safeчасть остается в силе, хотя.

 06 сент. 2012 г., 00:13
Это не работает для меня на Rails 3.2.8
 maddiedog06 мая 2012 г., 18:13
AHH! Это была проблема. Я думал, что это что-то связано с этим, но я просто делал это неправильно. Спасибо большое, Пьер.
 05 июн. 2012 г., 18:46
Ни одно из этих решений не работает.
 20 мая 2016 г., 14:13
Не работает. Я использую Rails 4.2.6 и протестировал raw () и .html_safe, но ни один из них не сработал.
 06 нояб. 2013 г., 10:08
Этот ответ неверен и не работает. Ответ @ jordanpg ниже является правильным.

<%= button_to "/home/delete?cardId="+card.id.to_s, data: { confirm:'Are you sure you want to delete?' }  do %>
    <i class="fa fa-times"></i>
<% end%>

это генерирует

<form class="button_to" method="post" action="/home/delete?cardId=15">
 <button data-confirm="Are you sure you want to delete?" type="submit">
    <i class="fa fa-times"></i>
 </button>
</form>

<%= button_to button_path, method: :delete do %>
    <span class="glyphicon glyphicon-search"></span>
<% end %>
 05 янв. 2016 г., 18:23
Это именно то, что я искал. Большое спасибо.
 20 февр. 2014 г., 11:58
Передача блока вbutton_to работает только с рельсами & gt; = 4.x

module ApplicationHelper
  def glyph(*names)
   content_tag :i, nil, class: names.map{|name| "icon-#{name.to_s.gsub('_','-')}" }
  end
end

Пример:

glyph(:share_alt)
=> <i class="icon-share-alt"></i>

а также

glyph(:lock, :white)
=> <i class="icon-lock icon-white"></i>

здесь описано, как создать кнопку удаления, используяlink_to или жеbutton_to.

Обратите внимание, что я используюHaml вместо эрб.

По вашему мнению:

- @users.each do |user|
  = link_to content_tag(:i, ' Delete', class: "glyphicon glyphicon-trash"),
    users_path(user),
    class: "btn btn-danger",
    method: :delete,
    data: { confirm: "Delete user #{user.username}?" }

Вы также можете заменитьcontent_tag расставаться с

raw('<i class="glyphicon glyphicon-trash"> Delete</i>'),

Ваш ответ на вопрос