ついでに登録日を1日ずらす。
日付型の項目は、年、月、日、時、分、秒と別れてパラメタに入ってくるので、
扱いづらい。
ので、一旦モデルに突っ込んで処理し、その後ハッシュに変換する。
def update
#パラメタを一旦モデルに突っ込む
tmp = Syohin.new(syohin_params)
#金額を10円単位で丸める
tmp.kingaku = tmp.kingaku.round(-1)
#日付型の登録日を1日ずらす。
tmp.record_datetime = tmp.record_datetime + (60 * 60 * 24)
#モデルをハッシュに変換する。
tmp2 = tmp.attributes
#不要なキーを削除
["id","created_at","updated_at"].each do |key|
tmp2.delete(key)
end
#updateに突っ込む
respond_to do |format|
if @syohin.update(tmp2)
format.html { redirect_to @syohin, notice: '更新完了' }
else
format.html { render :edit }
end
end
end
さすがにちょっとアレなのでコードレビューする。
返信削除トラックバック。 http://blog.eiel.info/blog/2014/09/24/re-modified-rails-update/