将一个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_tobutton_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%> 

这产生了