可能重复:
Is there a way with rails form helper to produce a button tag for submit
这可能是一个非常简单的问题,但我有这个HTML布局:
<button class="btn btn-large btn-inverse"><i class="icon-white icon-shopping-cart"></i> Add to bag</button>
这是一个添加到购物车按钮,我正在沿着Agile Web Development一书创建购物车。问题是,在按钮标签之间嵌入了HTML,我该如何让它像那样渲染?我试过这个:
%= button_to raw('<i class="icon-white icon-shopping-cart"></i> Add to bag'), line_items_path(product_id: product) %>
但首先它打印的是“输入”而不是按钮,文本在html中都是歪斜的,而不是在开始和结束标记之间。
我知道我可以手动编写所有内容,但是希望弄清楚是否有一种快捷方式来使用rails标签来输出这个HTML,主要是因为使用twitter bootstrap我总是看到这种类型的HTML模式...
感谢任何帮助。
答案 0 :(得分:1)
正如Mischa所评论,它类似于Is there a way with rails form helper to produce a button tag for submit。
content_tag帮助器可用于在rails中写入按钮。但是,它不是一个捷径,因为写入比原始html需要更长的时间。
但是,如果您需要经常这样做,您可以编写自定义帮助方法,以您想要的方式执行此操作!
只需添加到您的app / helpers / application_helper.rb
即可def my_button_to name, options = {}, html_options = {} # or some variation
# eg. deal with options hash the way button_to deals with it here?
content_tag :button, html_options = nil do
raw name
end
end
现在您可以在视图中使用它:
<%= my_button_to '<i class="icon-white icon-shopping-cart"></i> Add to bag', {}, :class => "btn btn-large btn-inverse" %>