ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

カラム追加をdb:migrateしたが、画面に即反映されない。

ここからがすごいところです。

うんぬんと、特にアプリケーションを修正しなくても、migrateするだけでアプリにカラムが追加されるかのごとく説明されてますが、rails2ではそうではなさそう。
Rails2 ことはじめ / 技術屋かくのごとし
によると、

後からでもrake db:migrateで変更できるが、その場合はcontroller、model、viewには反映されない。

とのこと。


とりあえず、

app/views/products

ディレクトリ配下にある、

  • edit.html.erb
  • index.html.erb
  • new.html.erb
  • show.html.erb

をそれぞれ修正(Price列を追加)すれば、Price列の追加/更新が出来ました。


例えば、index.html.erbなら、こんな感じ。

<h1>Listing products</h1>

<table>
  <tr>
    <th>Title</th>
    <th>Description</th>
    <th>Image url</th>
    <th>Price</th>			<!-- この行を追加 -->
  </tr>

<% for product in @products %>
  <tr>
    <td><%=h product.title %></td>
    <td><%=h product.description %></td>
    <td><%=h product.image_url %></td>
    <td><%=h product.price %></td>	<!-- この行も追加 -->
    <td><%= link_to 'Show', product %></td>
    <td><%= link_to 'Edit', edit_product_path(product) %></td>
    <td><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New product', new_product_path %>