Saturday 13 April 2013

Form Fields in Rails



form_for         :


<%= f.select :menu_id, options_from_collection_for_select(@menus, 'id', 'name') %>
<%= f.datetime_select  :schedule , :prompt => {:day => 'Choose day', :month => 'Choose month', :year => 'Choose year'}%>


form_tag         :


<%= form_tag :controller => "index", :action => "index" do %>
<%= select_tag(:area_id, options_from_collection_for_select(@areas, :id, :area_name, @area_id),
 :onchange => "this.form.submit()") %>
<% end %>


OR
Over an integer range:
<%= f.select :field_name, (1..50) %>  OR select("product", "quantity", 1..100)


<form accept-charset="UTF-8" action="/area/2" method="post">
    <select id="area_id" name="area_id" onchange="this.form.submit()">
      <option value="1">Japan</option>
      <option value="2" selected="selected">Thailand</option>
      <option value="3">USA</option>
      <option value="4">Canada</option>
      <option value="5">England</option>
    </select>
</form>



:Value parameter

Error sometime occur: undefined method 'merge' for  xxx:xxx

Solution: use ":value" parameter


<%= f.hidden_field :session_id,  :value => "abcdefg0123456789" -%>


:MULTIPLE parameter
When you need to send an array of information back
<%= f.hidden_field "orders", :multiple => true,  :value=>schedule.id %>

No comments:

Post a Comment