2012-10-25 18 views
11

データベースにads_counterというフィールドがあります。この広告がレンダリングされるたびにその値を増やす必要があります。データベースのカウンターを増やす

私はカスタムメソッドを書いてこのデータの責任を負うコントローラで使用しようとしましたが、うまくいかなかったのです。データベース内のフィールドの値を増やすための組み込みメソッドはありますか?

+0

提供数でカウントアップ!ありがとうございました! – felipeclopes

+0

update_attributes.Thanksを使用して既に別の方法で見つかっています。 – Avdept

+0

update_attributesがバリデーションを呼び出してからインクリメントを呼び出すことをお勧めします。インクリメンタルコマンドはあなたが求めたものを正確かつ排他的に行います。 – felipeclopes

答えて

22

はい、ActiveRecordで呼び出すことができるincrementメソッドがあります。参考のため

increment

編集:

それはあなたがそれをこのように使用することができincrement!

を使用する直接保存できるようにするには:

instance.increment!(:ads_counter) 

それは自動的でインクリメント1

instance.increment!(:ads_counter, <number>) 

は、それはあなたの構造を共有している場合、我々はより多くの情報をお届けして

+0

素晴らしい、完全な答えです。ありがとう。 –

1

あなたは属性をインクリメントし、レコード

your_object.increment!(:ads_counter) 

は、あなたのコントローラのshow方法でこのコードを入れて保存し方法increment!を持っています。

+0

このメソッドは1だけ増分するか、追加のパラメータがありますか? – Avdept

+0

'your_object.increment!(:ads_counter、42)'を使うことができます。私の答えには、メソッドのドキュメントへのリンクがあります。 – Baldrick

関連する問題