はじめる!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