0

Form helpers cheatsheet

 2 years ago
source link: https://devhints.io/rails-forms
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Form builder

- form_for @post do |f|

Field names will be prefixed with post (the class name), and values will be derived from this object (eg, f.text_field :name from @post.name).

Options

- form_for @post, |
  url: { method: 'put', action: 'create' }, |
  html: { class: 'nifty_form' } |
  do |f|

Fields

f.text_field :title
f.text_area :body, size: '60x12'

Checkbox

f.check_box :remember_me
f.label :remember_me, "Remember me"

Radio

f.radio_button :gender, 'male'
f.label :gender_male, "Male"

f.radio_button :gender, 'female'
f.label :gender_female, "Female"

Label

f.label :title
f.label :title, "Title"
f.label :title, "Title", class: "title"
f.label(:post, :terms) { "Accept terms" }

Submit button

f.submit "Create"

Hidden fields

f.hidden_field :id

The model

f.object

Fields for

= form_for @post do |f|
  = fields_for :author, @post.author do |ff|
    = ff.text_field :name

Select dropdowns

f.select :city_id, [['Lisbon',1], ['Madrid',2], ...], 4
# (4 = selected)

options_for_select [['Lisbon',1], ['Madrid',2], ...], 4
# Just makes <option> tags

Collections

f.collection_radio_buttons :author_id, Author.all, :id, :name_with_initial
f.collection_select :city_id, City.all, :id, :name
# (field, collection, value_key, label_key)

Time select

f.time_zone_select :time_zone
f.date_select :birthday
helpers:
  submit:
    # helpers.submit.<action>
    create: "Create a %{model}"
    update: "Confirm changes to %{model}"

    # helpers.submit.<model>.<action>
    article:
      create: "Publish article"
      update: "Update article"

  # helpers.label.<model>.<field>
  label:
    post:
      body: "Your body text"

Outside f

radio_button("post", "category", "rails")
radio_button("post", "category", "java")

# picks from @post.category
# <input type="radio" id="post_category_rails" name="post[category]"
#  value="rails" checked="checked" />

Reference

select(method, choices = nil, options = {}, html_options = {}, &block)
  choices == [ ['label', id], ... ]

submit(value=nil, options={})

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK