変数 = 《Model》.find( ID );こうしてデータを取得したら、その内容を更新します。更新は、「update_attributes」というメソッドを用いるのが一般的です。これは、newと同様に、保管する値を引数に記述して呼び出すことができます。
《Model》.update_attributes(《オプションの指定》)オプションは、保管するプロパティ(テーブルのフィールド名)と値を「○○ => '△△'」という具合にまとめて記述します。例えば、Heloモデルクラスならこんな具合ですね。
《Helo》.update_attributes(:title => 'タイトル', :content => 'コンテンツ')それぞれ「:オプション名 => '値'」というような形で記述されているのがわかるでしょう。これさえきちんと呼び出せれば、後は何もいりません。newがわかっていればそれほど悩むこともないですね。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※edit.html.erbのソースコード
<p><%= @msg %></p>
<hr>
<form method="post" action="/helo/update">
<input type="hidden" id="id" name="id" value="<%= @helo.id %>">
<table>
<tr>
<td>ID:</td>
<td><%= @helo.id %></td>
</tr>
<tr>
<td>title:</td>
<td><input type="text" id="title" name="title"
size="40" value="<%= @helo.title %>"></td>
</tr>
<tr>
<td>content:</td>
<td><textarea id="content" name="content" cols="40"
rows="3"><%= @helo.content %></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit"></td>
</tr>
</table>
</form>
※edit/updateアクションメソッド
def edit
@title = "サンプルレイアウト"
@header_content = "データの更新"
@msg = "データの更新を行います。"
@helo = Helo.find(params['id'])
end
def update
title = params['title']
content = params['content']
obj = Helo.find(params['id'])
obj.update_attributes(:title => title, :content => content)
redirect_to obj
end
| << 前へ | 次へ >> |