ビューヘルパー form_for

RESTfulな使い方では、一つのフォームパーツを登録と編集で使いまわすことができるのですね。例えば、以下のフォーム記述。
form_for で作ったフォームは、引数にとるモデル@bookの内容によって、送り方が変わる。
@bookが空の場合は、 action="/books", HTTPメソッドがPOST
空でない場合は、action="/books/1"、HTTPメソッドがPUT(疑似)
となる。

"/books" 、HTTPメソッドがPOSTに対しては、createアクションが呼ばれる。
"/books/1" 、HTTPメソッドがPUTに対しては、updateアクションが呼ばれる。

これで、formを共通化しても、登録と編集とで使えるわけね。

<%= form_for(@book) do |f| %>
  <% if @book.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@book.errors.count, "error") %> prohibited this book from being saved:</h2>

      <ul>
      <% @book.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label 'ISBNコード' %><br />
    <%= f.text_field :isbn %>
  </div>
  <div class="field">
    <%= f.label 'タイトル' %><br />
    <%= f.text_field :title %>
  </div>
  <div class="field">
    <%= f.label '値段' %><br />
    <%= f.text_field :price %>
  </div>
  <div class="field">
    <%= f.label '出版社' %><br />
    <%= f.text_field :publish %>
  </div>
  <div class="field">
    <%= f.label '発行日' %><br />
    <%= f.date_select :published %>
  </div>
  <div class="field">
    <%= f.label :cd %><br />
    <%= f.check_box :cd %>
  </div>
  <div class="actions">
    <%= f.submit '登録' %>
  </div>
<% end %>