1
所以我想知道如果我们可以有一个条件allow_nil选项来验证轨道模型。Rails模型验证条件allow_nil?
我想这样做是为了能够根据一些逻辑(一些其他属性)allow_nil
所以我可以保存为草稿产品模型。并且在保存为草稿时价格可以为零,但是如果没有草稿保存价格应该是数字。我怎么能做到这一点。以下似乎并不奏效。它适用于草案,但即使状态不是草案,也允许为零。
class Product<ActiveRecord::Base
attr_accessible :status, price
validates_numericality_of :price, allow_nil: :draft?
def draft?
self.status == "draft"
end
end
看着rails docs我看起来像没有一个选项来传递一个方法allow_nil?
一个可能的解决方案是针对这两种情况下
with_options :unless => :draft? do |normal|
normal.validates_numericality_of :price
end
with_options :if => :draft? do |draft|
draft.validates_numericality_of :price, allow_nil: true
end
任何其他方式来得到这个工作做单独的验证?
感谢
谢谢。这与我所建议的相同。只是想知道是否有办法有一个有条件的allow_nil?无论如何,谢谢 – Abid 2012-08-12 12:40:33