有没有办法使用rails form helper来生成用于提交的按钮标记

Jon*_*han 28 forms ruby-on-rails custom-tag

我正在尝试创建按钮ala Wufoo(重新发现按钮元素)

我想写下面的代码如下:

<%form_tag search_path, :method => :get, :class => 'search' do %>
  <%=text_field_tag :search, params[:search] -%>
  <%=button_tag 'search', :name => nil-%>
<%end%>
Run Code Online (Sandbox Code Playgroud)

生成以下HTML(而不是输入[type ="submit"]标记)

<button type="submit" class="positive">
    <img src="/images/icons/tick.png" alt=""/> 
    Save
</button>
Run Code Online (Sandbox Code Playgroud)

方法是否已存在?或者我应该自己动手帮忙?

EmF*_*mFi 37

您可以使用content_tag来实现此目的.这是做你想做的事情的更多的方式.但它比原始HTML更长.

<% content_tag :button :type => :submit, :class => :positive do %>
   <%= image_tag "icons/tick.png"%>
   Save
<% end %>
Run Code Online (Sandbox Code Playgroud)

哪个产生

<button type="submit" class="positive">
    <img src="/images/icons/tick.png" alt="Tick"/> 
    Save
</button>
Run Code Online (Sandbox Code Playgroud)

但是,使用此作为起点,您应该没有问题来滚动自己的强大帮助器,或将其抽象为部分.

  • 我创建了一个名为"button_tag"的帮助器,它的行为与所有其他rails一样,形成了辅助方法,因此它让我很开心. (2认同)