Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

ステータス変更

後は未読/既読のステータス変更を出来るようにしなくちゃ。それで、第一段階の目標は完了

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行だけだもんね。この辺りは私にとってはまだ若干魔法に見える

というわけで、こんな感じ