将一个Twitter Bootstrap按钮图标添加到Rails中的button_to
我正在使用Rails书进行敏捷Web开发,但我一直在使用Twitter Bootstrap而不是书中的自定义样式。 我无法通过GLyphonics向button_to方法添加图标。 我的代码如下所示:
<%= button_to Add To Cart, line_items_path(product_id: product), class: "btn btn-success" %>
我尝试了很多变化,但似乎无法让它正常工作。
看起来你的报价有问题:
<%= button_to raw("Add To Cart"), line_items_path(product_id: product), class: "btn btn-success" %>
用双引号括起按钮的标签,转义i
标签中的双引号,最后将所有内容包装到raw()
调用中,以确保正确显示HTML。
或者你可以使用html_safe
:
<%= button_to "Add To Cart".html_safe, line_items_path(product_id: product), class: "btn btn-success" %>
来自@jordanpg的好点:您不能在按钮的值中包含HTML,因此他的解决方案更合适并且应该获得批准状态。 html_safe
部分仍然有效。
我不确定OP是如何工作的,但是Rails button_to
生成一个元素,它不允许在value字段中使用HTML。
另请参阅: input type =“submit”Vs按钮标签是否可以互换?
在这种情况下,最好的选择是强制link_to
到PUT(或POST):
<%= link_to raw("Add To Cart"), line_items_path(product_id: product), class: "btn btn-success", method: :put %>
您可以将图标添加为子元素:
<%= button_to button_path, method: :delete do %> <% end %>
使用raw()或#html_safe仍然不适合我。
我正在使用辅助方法来创建button_to标记内容。 在我的帮助方法中使用以下内容结束(路径是事先定义的):
form_tag path, :method => :post do button_tag do content_tag :i, 'Flag as inappropriate', :class => 'icon-flag flag_content' end end
我用过这个,它对我来说很好用:
<%= 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 %>
希望这可以帮助
我正在使用这个助手:
module ApplicationHelper def glyph(*names) content_tag :i, nil, class: names.map{|name| "icon-#{name.to_s.gsub('_','-')}" } end end
例:
glyph(:share_alt) =>
和
glyph(:lock, :white) =>
使用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
替换content_tag
部分
raw(' Delete'),
这项工作对我来说,(并确认消息)
<%= button_to "/home/delete?cardId="+card.id.to_s, data: { confirm:'Are you sure you want to delete?' } do %> <% end%>
这产生了