【发布时间】:2014-10-17 01:47:54
【问题描述】:
我怎样才能避免在验证update 的同时验证create?例如:
我希望有一个image 字段以在create 上有presence validation。但是想在edit中避免它,并在没有变化的情况下假设以前的值。
注意:我正在使用 Padrino。
【问题讨论】:
我怎样才能避免在验证update 的同时验证create?例如:
我希望有一个image 字段以在create 上有presence validation。但是想在edit中避免它,并在没有变化的情况下假设以前的值。
注意:我正在使用 Padrino。
【问题讨论】:
在 Sequel 中,验证通常使用 validation_helpers 插件在实例级别完成。因此,如果您只想验证新对象而不是现有对象,则只需使用标准 ruby 条件:
plugin :validation_helpers
def validate
super
validates_presence :image if new?
end
【讨论】:
new? 存在!无论如何,它是一个很棒的 ORM,谢谢!
你可以这样说:
validates :image, :presence => true, on: :create
这意味着您将仅在创建时进行验证。
【讨论】:
在 Rails 中,
Rails 中的“validates”关键字带有一个允许您执行此操作的参数:
validates :your_validator, :presence => true, :on => :create
你也可以在那里传递一个数组:
validates :your_validator, :presence => true, :on => [:create, :update]
在帕德里诺,
我相信使用 datamapper 的 padrino - DM 具有上下文验证。因此,您可以进行上下文验证。
validates :image, :presence => true, :when => [:custom]
然后在保存的时候,你可以这样做:
post.save(:custom)
# OR
post.valid?(:custom)
上下文 :custom 可以在不同的地方使用。
【讨论】: