button(value = nil, options = {}, &block) public

Add the submit button for the given form. When no value is given, it checks if the object is a new resource or not to create the proper label:

<%= form_for @post do |f| %>
  <%= f.button %>
<% end %>

In the example above, if @post is a new record, it will use “Create Post” as button label; otherwise, it uses “Update Post”.

Those labels can be customized using I18n under the helpers.submit key (the same as submit helper) and using %{model} for translation interpolation:

en:
  helpers:
    submit:
      create: "Create a %{model}"
      update: "Confirm changes to %{model}"

It also searches for a key specific to the given object:

en:
  helpers:
    submit:
      post:
        create: "Add %{model}"

Examples

button("Create post")
# => <button name='button' type='submit'>Create post</button>

button(:draft, value: true)
# => <button id="post_draft" name="post[draft]" value="true" type="submit">Create post</button>

button do
  content_tag(:strong, 'Ask me!')
end
# => <button name='button' type='submit'>
#      <strong>Ask me!</strong>
#    </button>

button do |text|
  content_tag(:strong, text)
end
# => <button name='button' type='submit'>
#      <strong>Create post</strong>
#    </button>

button(:draft, value: true) do
  content_tag(:strong, "Save as draft")
end
# =>  <button id="post_draft" name="post[draft]" value="true" type="submit">
#       <strong>Save as draft</strong>
#     </button>
Show source
Register or log in to add new notes.