4

可能重复:
有没有一种方法可以使用 rails form helper 来生成提交的按钮标签

这可能是一个很简单的问题,但我有这个 HTML 布局:

<button class="btn btn-large btn-inverse"><i class="icon-white icon-shopping-cart"></i> Add to bag</button> 

这是一个添加到购物车的按钮,我正在按照敏捷 Web 开发这本书来创建一个购物车。问题是,在按钮标签之间嵌入了 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 模式......

任何帮助表示赞赏。

4

1 回答 1

1

正如 Mischa 所评论的,它类似于Is there a way with rails form helper to generate 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" %>
于 2012-08-19T09:01:26.710 回答