2011-01-04 15 views
0

私はむしろレールを初めて使っています。それが正常にデータベースから製品を取得しないが、価格の属性を更新しませんレールモデルを更新できません

@test = Product.find(1) 
@test.increment!(:price) 

:私は、次のコードを使用してモデルを更新しようとするのコントローラーを持っています。誰がなぜこのような場合があるのか​​、または問題の内容についてより多くのフィードバックを得る方法を知っていますか?

ありがとうございました!
トリスタン

編集:価格は私が= 50 test.price @で価格を設定して、test.save @同じ問題を取得した値0の整数です。

+0

あなたは、製品上の任意のコールバックを持っていますか? – Fred

答えて

1

ああ、私は問題を発見し、私はすべての更新プログラムをブロックし、検証していたペーパークリップ(画像添付)宝石を使用していたこの赤ちゃんはそれを解決:Smarter paperclip validations

0

incrementはモデルバリデーションをバイパスしますので、 "price"を1だけインクリメントするとモデルが無効になり、保存されない可能性があります。モデルとその価格属性について、より多くの文脈なしで話すのは難しいです。非バンバージョンのincrementを試して、それを手動で保存して呼び出し、モデルオブジェクトを調べて検証エラーがあるかどうかを調べることができます。

+0

こんにちは。別の方法で価格を設定してからsaveを呼び出してみました。オブジェクトをエラーでチェックしてみました。私は失われてから、何も見えませんでした。インクリメントとセーブの両方が私のためにfalseを返しますが、レールコンソールを使ってそれらのメソッドを試してみると、trueを返します。 – WoodenKitty

0

「価格属性のDBの種類は何ですか?

インクリメントだけ数ベースの属性で動作します(http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-increment 。。。%21)が

+0

価格は整数です – WoodenKitty

関連する問題