【发布时间】:2011-01-20 15:28:10
【问题描述】:
我有一个带有以下代码的 rails 应用程序:
class Rig < ActiveRecord::Base
has_many :rig_pictures, :dependent => :destroy
accepts_nested_attributes_for :rig_pictures,
:allow_destroy => true,
#we reject blank pictures unless they have to be deleted
:reject_if => lambda { |a| a['picture'].blank? && !a['_destroy'] }
validate :has_beween_1_and_x_pictures
private
def has_beween_1_and_x_pictures
errors.add_to_base("must not have more than 8 pictures") if rig_pictures.size > 8
errors.add_to_base("must have at least 1 picture") if rig_pictures.size < 1
end
end
我的问题是“必须至少有 1 张图片”验证。如果用户在编辑表单中并删除了他所有的图片,验证不会失败,因为那时它不知道我要删除什么。
所以我的问题是:如何确保验证只考虑真实图片而不考虑我要删除的图片?
谢谢。
【问题讨论】:
标签: ruby-on-rails validation paperclip has-many