2012-01-27 8 views
0

明らかに間違ったことをする必要があるので、私は非常に苛立っていますが、何が分かりませんか?モデルバリデーションが機能していない

基本的に、モデルに検証を追加しようとしています。コンソールで検証をテストすると、私が設定したバリデーターのどれも動作していないようです! 、私が正しくthis articleを理解すれば、オブジェクトの属性のいくつかがゼロであるため、

1.9.2-p290 :008 > s = Sale.new 
=> #<Sale id: nil, product: nil, variant: nil, start: nil, end: nil, price: nil, shop_id: nil, created_at: nil, updated_at: nil, compare_at: nil> 
1.9.2-p290 :009 > s.valid? 
=> true 
1.9.2-p290 :010 > s.save 
    SQL (1.2ms) INSERT INTO "sales" ("compare_at", "created_at", "end", "price", "product", "shop_id", "start", "updated_at", "variant") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) [["compare_at", nil], ["created_at", Fri, 27 Jan 2012 02:06:40 UTC +00:00], ["end", nil], ["price", nil], ["product", nil], ["shop_id", nil], ["start", nil], ["updated_at", Fri, 27 Jan 2012 02:06:40 UTC +00:00], ["variant", nil]] 
=> true 

は今、valid?falseを返す必要があります:

class Sale < ActiveRecord::Base 
    validates :product, :presence => true 
    validates :variant, :presence => true 
    validates :price, :presence => true 
    validates :start, :presence => true 
    validates :end, :presence => true 

    belongs_to :shop 
end 

はここに私のコンソール出力です:

は、ここで問題になっているモデルですモデルは、そうしてはならないと定義していますが、そうではありません。

アイデア?

+0

使用しているレールのバージョンは何ですか?また、Shopモデルのソースコードを追加できますか?私はちょうどこれをテストし、期待どおりに働いた。 –

+0

'class Shop

+0

これはシステム内の唯一の2つのモデルですか?また、あなたはまだレール版を追加していません。 –

答えて

0

ここではエラーが私の顔にあったことが判明しました。

jobsというフォルダに、Sale.rbという名前の追加ファイルがありました。このファイルはSaleクラスを再オープンし、Delayed_Jobモジュールに関する追加機能を追加しました。不確定な理由により、これにより、モデルバリデーションが機能しないか、valid?のようなメソッドに応答することができなくなりました。これを解決するために、私はこの個別のファイルで書いたメソッドを追加し、モデル\ Sale.rbに連結しました。