如果update
拥有create
,我怎么能避免对image
进行验证?例如:
我希望在presence validation
上设置create
字段edit
。但是希望在{{1}}中避免使用它,并在没有变化的情况下假设前一个值。
注意:我正在使用Padrino。
答案 0 :(得分:6)
在续集中,验证通常使用validation_helpers
插件在实例级别完成。因此,如果您只想为新对象而不是现有对象验证它,那么您只需使用标准的ruby条件:
plugin :validation_helpers
def validate
super
validates_presence :image if new?
end
答案 1 :(得分:0)
validates :image, :presence => true, on: :create
这意味着只有在创建时才会进行验证。
答案 2 :(得分:0)
在Rails中,
"验证" Rails中的关键字带有一个允许你这样做的参数:
validates :your_validator, :presence => true, :on => :create
你也可以在那里传递数组:
validates :your_validator, :presence => true, :on => [:create, :update]
在Padrino,
我相信使用datamapper的padrino - DM具有上下文验证。因此,您可以进行上下文验证。
validates :image, :presence => true, :when => [:custom]
然后在保存时,您可以这样做:
post.save(:custom)
# OR
post.valid?(:custom)
上下文:custom可以在不同的地方使用。