Rails4 | 新規・変更機能 | update_attributes が update に変更
概要
update_attributes が update というシンプルな名前に変更になりました。
ただし、 update_attributes は今まで通り使用可能。
サンプル
仕様
- 下記で scaffold した状態をベースとする
rails g scaffold person name:string age:integer
rake db:migrate
サンプルコード
- scaffold した状態の PeopleController の update メソッドの内容を確認します
def update
respond_to do |format|
if @person.update(person_params)
format.html { redirect_to @person, notice: 'Person was successfully updated.' }
format.json { render :show, status: :ok, location: @person }
else
format.html { render :edit }
format.json { render json: @person.errors, status: :unprocessable_entity }
end
end
end
- Personモデルに before_update の設定を追加します
class Person < ActiveRecord::Base
before_update ->{ logger.info 'before_update' }
end
update を実行
- http://xxxxx:3000/people/<任意のid>/edit をリクエストし、適当な値で更新を実行
更新が反映され、ログで before_update フックの呼び出しを確認します。
以下は、フックのログ。
before_update