例えばブックマークに追加した人をDBにカウントアップしていく場合とか、active_recordには便利なメソッドがある。
Hoge.update_counters(id, counters) だ。
bookmark_countがカラム名だとすると
Hoge.update_counters(1, :bookmark_count => 1)
みたいにする。
そうすると
update hoge
set bookmark_count = bookmark_count + 1
where id = 1
という感じに処理してくれる。
カラムのところはcountersとなっていて、どうやらいくつでも指定できるっぽい。
僕は必要なかったからやってないけど。
エラーがでたらそれはたぶん引数の型がおかしいのでご確認ください。
例えばidをクエリから拾ってくる場合は、intに変換する必要があったりとか。
Hoge.update_counters(params[:id].to_i, :bookmark_count => 1)
あと、カウント値はマイナスでもよいようです。
あと、文体で唯一統一していた一人称も、てきとーにすることにしました。
以上、よろしくお願いします。
コメントする