2011-02-07 4 views
1

고유 제품의 제품 모델을 가지고 있습니다. 따라서 사용자가이 모델을 구입하면 아무도 다시 살 수 없으며 판매자는 구매자와 동일한 사람이 될 수 없습니다.레일 모델을 무효로 만들 수있는 방법

제품을 구입할 때 product.buy (구매자) 메소드를 호출합니다. 그러나이 방법은 구매자 = 판매자 및 date.sale! = nil 일 때 모델을 유효하지 않게해야합니다. 그러나 이것은 효과가 없습니다. 어떻게 해결할 수 있습니까? 유효성 검사 :! = 판매자가 당신이 사소한 오타를

validate :buyer_is_not_seller 

def buyer_is_not_seller 
    errors.add(:buyer, "shouldn't be seller") if buyer.id == seller.id 
end 

답변

5

은 전무 date_sale을 처리 모델의 상단에이를 추가하려면 buyer_is_not_seller
+0

을 할 수있는 경우 구매자

validate_presence_of :date_sale 

확인하려면

def buy(buyer) if self.user != buyer if self.date_sale.nil? self.date_sale = Time.now self.buyer = buyer else # self.errors.add(:buyer, "article bougth") # Dont't work end else # self.errors.add(:buyer, "seller can not buyer") # Dont't work end end 
tokland

+0

@ 토클 랜드, 고맙습니다. – marcgg

+0

안녕하세요, 감사합니다.하지만 사용자가 구매 방법을 실행할 때만이 유효성 검사가 필요합니다. 기사가 판매됨을 _date_sale로 확인합니다. date_sale! = nil 일 때마다 점검 할 때 모든 상품이 판매된다는 것을 의미합니다. – ThreeFingerMark

관련 문제