form_for は <form></form> を生成するが、fields_for は <form> を生成しない。
で、form_for と同じ POST 時のパラメータ値を Hash 形式にできる。
■form_for
<%= form_for :person do |f| %> ID: <%= f.text_field :user_id %> Name: <%= f.text_field :name %> <% end %>
<form accept-charset="UTF-8" action="/form/input" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="Rtch9vUwmDWmniDy/IsMetQhhfnbzp9lHXV6YAe2PwA=" /></div> <input id="person_user_id" name="person[user_id]" size="30" type="text" /> <input id="person_name" name="person[name]" size="30" type="text" /> </form>
■fields_for
<%= fields_for :person do |f| %> ID: <%= f.text_field :user_id %> Name: <%= f.text_field :name %> <% end %>
ID: <input id="person_user_id" name="person[user_id]" size="30" type="text"/><br/> Name: <input id="person_name" name="person[name]" size="30" type="text"/>
以前書いた check_box の配列化なんかのコードが
<%= fields_for :dinner do |field| %> <%= field.check_box "zensai" %>前菜 <%= field.check_box "supe" %>スープ <%= field.check_box "main" %>メインディッシュ <%= field.check_box "dezart" %>デザート <%= field.check_box "drink" %>ドリンク <% end %>と、なんかスッキリと書ける。
0 件のコメント:
コメントを投稿