migration初体験05【追加カラムを編集できるようにviewをいじる】
一覧画面 http://localhost:3000/book/list を開きますと、何もしなくても、勝手に Price と Gender の値が一覧表示されています。ステキ!ラブラブ!
そいで、新規作成画面を開きますと、追加した Price と Gender を入力するテキストボックスなりなんなりが表示されていません。
やっぱりそんなにすんなり全部やってくれるわけがないですよね。
そこで気合い入れて、画面表示に手を入れます。
画面表示といえば、view ですよね。
さっそく view ディレクトリのファイルをみてみることにします。
# ls -1 app/views/book
_form.rhtml
edit.rhtml
list.rhtml
new.rhtml
show.rhtml
新規作成画面で、追加した Price と Gender の入力するテキストボックスとかがなかったので、new.rhtml ファイルの中身をみてみますと、
<h1>New book</h1>
<% form_tag :action => 'create' do %>
<%= render :partial => 'form' %>
<%= submit_tag "Create" %>
<% end %>
<%= link_to 'Back', :action => 'list' %>
うわー、全然 Title とか Author とかのかけらもありません。いったいどうなってるのこの島は?
そこで、こっそり存在している謎のファイル _form.rhtml をのぞいてみますと、
<%= error_messages_for 'book' %>
<!--[form:book]-->
<p><label for="book_title">Title</label><br/>
<%= text_field 'book', 'title' %></p>
<p><label for="book_author">Author</label><br/>
<%= text_field 'book', 'author' %></p>
<!--[eoform:book]-->
となっています。なんか共通で使い回してんのかなー?と思い、Price と Gender の分も付け加えてみました。
<%= error_messages_for 'book' %>
<!--[form:book]-->
<p><label for="book_title">Title</label><br/>
<%= text_field 'book', 'title' %></p>
<p><label for="book_author">Author</label><br/>
<%= text_field 'book', 'author' %></p>
<p><label for="book_price">Price</label><br/>
<%= text_field 'book', 'price' %></p>
<p><label for="book_gender">Gender</label><br/>
<%= radio_button 'book', 'gender', 'm' %>male
<%= radio_button 'book', 'gender', 'f' %>female</p>
<!--[eoform:book]-->
いい感じです。
あと1点気になるのは、リスト表示とか、完了画面とかに、Gender が、「m」とか「f」とかいう実際 DB に入っている生の値が表示されるのです。
そこんとこ、「male」とか「female」とかに表示をさせたいのです。
というのは次回にするか。やり方が分からないけども。がんばってインターネット様にお伺いいたします!
【広告】