後は未読/既読のステータス変更を出来るようにしなくちゃ。それで、第一段階の目標は完了
isbnのビューを変更する。
<h1><%= @book.title.gsub(/\s.*$/,"")%>/<%= @book.auther %></h1> <% if @book.mediumimage_url %> <img src="<%= @book.mediumimage_url %>" height="<%= @book.mediumimage_height %>" width="<%= @book.mediumimage_width %>" style="float:left;margin: 5px;" /> <% end %> <p>ISBN:<%= @book.isbn13 %></p> <p>Title:<%= @book.title %></p> <p>Auther:<%= @book.auther %></p> <p>Status:<br /> <% form_tag :action => 'update', :id => @book do %> <%= radio_button :book, :status, 0 %><label for="book_status_0">未読</label><br/> <%= radio_button :book, :status, 1 %><label for="book_status_1">読了(未書評)</label><br/> <%= radio_button :book, :status, 2 %><label for="book_status_2">読了</label><br/> <%= submit_tag '変更' %> <% end %></p>
FORMタグを使わずにform_tagを使うことの意味がビュー側だけ見ているとよくわかんない。
受け側を見るとなんとなくわかる。ARのインスタンスをform_tagに食わせてやるのであれば、受け側のupdateメソッドは、
def update @book = Book.find(params[:id]) if @book.update_attributes(params[:book]) flash[:notice] = 'Book was successfully updated.' redirect_to :action => 'index' else render :action => 'isbn', :id => @book.isbn13 end end
これで済んじゃう。実質はupdate_attributesの1行だけだもんね。この辺りは私にとってはまだ若干魔法に見える
というわけで、こんな感じ