はじめる!Rails3(1)9.6演習問題答え
1.書籍情報の修正フォームを表示するbooks#edit アクションを実装してください。
def edit
@book = Book.find(params[:id])
end
2.books#edit アクションに対応する ERB テンプレートを作成してください。
edit.html.erbを作成しnewを張り付けます。
<h1>修正</h1> <%= form_for @book do |form| %> <%= form.label :title, "タイトル" %> <%= form.text_field :title %><br /> <%= form.label :authors, "作者" %> <%= form.text_field :authors %><br /> <%= form.label :publish_year, "発行年" %> <%= form.select :publish_year, (Time.now.year - 20)..(Time.now.year) %><br /> <%= form.label :comment, "コメント" %> <%= form.text_area :comment %><br /> <%= form.hidden_field :checked_out %> <%= form.submit "送信" %><br /> <% end %>
3.書籍の一覧ページに書籍修正フォームへのリンクを設置してください。
<td><%= link_to "修正", [ :edit, book ] %></td>
を追加します。
4.書籍情報の登録フォームと修正フォームのERB テンプレートを部分テンプレートを用いて整理してください。
_form.html.erbを作成し共通部分をはりつけます
<%= form_for @book do |form| %><%= form.label :title, "タイトル" %><%= form.text_field :title %>
<%= form.label :authors, "作者" %><%= form.text_field :authors %>
<%= form.label :publish_year, "発行年" %><%= form.select :publish_year,
(Time.now.year - 20)..(Time.now.year) %>
<%= form.label :comment, "コメント" %><%= form.text_area :comment %>
<%= form.submit "送信" %>
<% end %>
5.書籍情報を更新するbooks#update アクションを実装してください。
def update
@book = Book.find(params[:id])
@book.update_attributes params[:book]
redirect_to @book
end