1

up/downRailsアプリに親指機能を実装するためのこのコードがあります

if params[:vote][:type] == "up"
    answer = Answer.find_by_id(params[:vote][:id])
    answer.increment(:ups)
    render text: answer.ups
end
if params[:vote][:type] == "down"
    answer = Answer.find_by_id(params[:vote][:id])
    answer.increment(:downs)
    render text: answer.downs
end


エラーは発生しませんが、インクリメントされた値は DB で更新されません。

このコードは Rails コンソールで正しく動作します。

助けてください、

前もって感謝します

4

3 に答える 3

3

これは設計によるものです。このメソッドは属性をインクリメントしますが、保存はしません。保存したい場合はincrement!( bang version )を使用してください。

于 2013-06-05T10:35:03.627 に答える
1

モデルのスキーマを書いていただけますか。つまり、データ型を持つフィールドを意味します

別の移行:

change_column :answers, :ups, :integer, :default: 0
change_column :answers, :downs, :integer, :default: 0

あなたを助けるかもしれません

于 2013-06-05T11:10:16.563 に答える
1

一度確認してください

if params[:vote][:type] == "up"
    answer = Answer.find_by_id(params[:vote][:id])
    answer.to_i.increment(:ups)
    render text: answer.ups
elsif params[:vote][:type] == "down"
    answer = Answer.find_by_id(params[:vote][:id])
    answer.to_i.increment(:downs)
    render text: answer.downs
end
于 2013-06-05T10:31:02.110 に答える