2012-01-27 5 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

그리고 이것들은 시스템에있는 유일한 두 모델입니까? 또한 레일 버전을 추가하지 않았습니다. –

답변

0

여기서 오류가 내 얼굴에 나타났습니다.

jobs라는 폴더에 Sale.rb라는 추가 파일이 있습니다. 이 파일은 Sale 클래스를 다시 열고 Delayed_Job 모듈과 관련된 추가 기능을 추가했습니다. 미확인 된 이유 때문에 모델 유효성 검사가 작동하지 않거나 valid?과 같은 메소드에 응답하지 못했습니다. 이 문제를 해결하기 위해이 개별 파일에 작성한 메서드를 추가하고 model \ Sale.rb에 연결했습니다.

관련 문제