【Ruby】Ruby on Rail ..
637:nobodyさん
10/01/04 00:32:56
Railsの勉強で、簡単なブログツールを作っています。
記事のモデルオブジェクト(Post)にコメント数を表すカラム(comment_count)を作成しているのですが、これの更新方法がよくわかりません。
たぶんトランザクションを使って、コメントが保存できたらcomment_countを1増やすという方法になると思うのですが、
以下のようなコードであっているでしょうか。どなたか添削をお願いします。
def add_comment
# ブログ記事のモデルオブジェクトを検索
post = Post.find(params[:id]) or raise ActiveRecord::RecordNotFound.new
# コメントオブジェクトを作成し、記事IDを設定
comment = Comment.new(params[:comment])
comment.post_id = post.id
begin
# トランザクション開始
Post.transaction do
# コメントをセーブ
comment.save!
# コメントがセーブできたら、コメント数を1増やす
post.comment_count += 1
post.save!
end
# エラーがなければ 'OK' を出力
render :text=>'OK'
rescue ActiveRecord::RecordInvalid => ex
# エラーがあれば、エラーメッセージを出力
errmsg = comment.errors.collect{|arr| arr.join(': ')}.join("¥n")
response.status = 422
render :text=>errmsg
end
end
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5500日前に更新/279 KB
担当:undef