--- title: Rails form helpers category: Rails --- ## Form builder ### Form builder ```haml - 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 ```haml - form_for @post, | url: { method: 'put', action: 'create' }, | html: { class: 'nifty_form' } | do |f| ``` ## Fields ### Text ```rb f.text_field :title f.text_area :body, size: '60x12' ``` ### Checkbox ```rb f.check_box :remember_me f.label :remember_me, "Remember me" ``` ### Radio ```rb f.radio_button :gender, 'male' f.label :gender_male, "Male" f.radio_button :gender, 'female' f.label :gender_female, "Female" ``` ### Label ```rb f.label :title f.label :title, "Title" f.label :title, "Title", class: "title" f.label(:post, :terms) { "Accept terms" } ``` ### Submit button ```rb f.submit "Create" ``` ### Hidden fields ```rb f.hidden_field :id ``` ## Misc ### The model ```ruby f.object ``` ### Fields for ```haml = form_for @post do |f| = fields_for :author, @post.author do |ff| = ff.text_field :name ``` ### Select dropdowns ```rb f.select :city_id, [['Lisbon',1], ['Madrid',2], ...], 4 # (4 = selected) options_for_select [['Lisbon',1], ['Madrid',2], ...], 4 # Just makes