2011-02-07 19 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

@tokland修正済み、ありがとう – marcgg

+0

こんにちは、ありがとう、しかし、私はユーザーが購入方法を実行するときにのみ、この検証が必要です。記事が販売されていることを_date_saleで確認します。 date_sale!= nilを毎回チェックすると、これはすべての商品が販売されていることを意味します。 – ThreeFingerMark

関連する問題