Thr*_*ark 1 ruby validation ruby-on-rails
我有一个独特产品的产品型号.因此,当用户购买此型号时,没有人可以再次购买,卖家不能与买家相同.
当我购买产品时,我称之为product.buy(买方)方法.但是当买方=卖方和date.sale!= nil时,此方法应该使模型无效.但这不起作用.我该如何解决?
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
Run Code Online (Sandbox Code Playgroud)
要处理nil date_sale,请在模型顶部添加:
validate_presence_of :date_sale
Run Code Online (Sandbox Code Playgroud)
要检查买家!=卖家,你可以做
validate :buyer_is_not_seller
def buyer_is_not_seller
errors.add(:buyer, "shouldn't be seller") if buyer.id == seller.id
end
Run Code Online (Sandbox Code Playgroud)