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

Ну, я ничего не использовал, поэтому решил создать реальную простую функцию разделения, надеюсь, что это поможет:

    DECLARE inipos INTEGER;
    DECLARE endpos INTEGER;
    DECLARE maxlen INTEGER;
    DECLARE item VARCHAR(100);
    DECLARE delim VARCHAR(1);

    SET delim = '|';
    SET inipos = 1;
    SET fullstr = CONCAT(fullstr, delim);
    SET maxlen = LENGTH(fullstr);

    REPEAT
        SET endpos = LOCATE(delim, fullstr, inipos);
        SET item =  SUBSTR(fullstr, inipos, endpos - inipos);

        IF item <> '' AND item IS NOT NULL THEN           
            USE_THE_ITEM_STRING;
        END IF;
        SET inipos = endpos + 1;
    UNTIL inipos >= maxlen END REPEAT;
23
задан jordanpg 7 August 2012 в 18:58
поделиться

8 ответов

Похоже, у вас есть проблема с вашими кавычками:

<%= 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 часть остается в силе, хотя.

8
ответ дан Pierre 7 August 2012 в 18:58
поделиться

Я не уверен, как OP заставил это работать, но Rails 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 %>
57
ответ дан Community 7 August 2012 в 18:58
поделиться

Использование raw () или #html_safe все еще не работало для меня.

Я использую вспомогательный метод для создания контента 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
6
ответ дан Elle 7 August 2012 в 18:58
поделиться

Я использую этого помощника:

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>
4
ответ дан Juan Seijas 7 August 2012 в 18:58
поделиться

Эта работа для меня, (и с подтверждением сообщения)

<%= 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>
0
ответ дан Matias Sanchez 7 August 2012 в 18:58
поделиться

Я использовал этот, и он прекрасно работает для меня:

<%= 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 %>

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

5
ответ дан Pascal Luxain 7 August 2012 в 18:58
поделиться

Вы можете добавить значок в качестве дочернего элемента:

<%= button_to button_path, method: :delete do %>
    <span class="glyphicon glyphicon-search"></span>
<% end %>
22
ответ дан DanT 7 August 2012 в 18:58
поделиться

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

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

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

- @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>'),
1
ответ дан Dennis 7 August 2012 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: