您可以在相应的模型类中定义验证。
See the official documentation for Rails validation.
ActiveAdmin 将在您尝试创建/编辑/更新该模型的对象时选择它,如果您有 Rails 标准验证,甚至在您的 Model 类中定义了自定义验证。
例如,对于您的电子邮件验证,您可以在模型中包含以下内容:
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :on => :create
然后,当您尝试通过 ActiveAdmin 创建/保存对象时,如果电子邮件格式不正确,则会显示错误。
因此,您必须在模型中定义所有验证(针对您想要的所有字段)。就是这样!
而且,要显示所有验证错误的列表,您必须这样做:
form do |f|
f.semantic_errors *f.object.errors.keys
# ...
end
更新
将这些验证添加到您的模型类中:
validates_presence_of :description
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
validates :contact_number, :presence => {:message => 'hello world, bad operation!'},
:numericality => true,
:length => { :minimum => 10, :maximum => 15 }
这些是 Rails 标准验证。您也可以向模型添加自定义验证。
例如,如果您想为 username 添加自定义验证,您可以这样定义:
validate :username_must_be_valid
然后,像这样在同一个模型类中定义自定义验证器方法username_must_be_valid:
private
def username_must_be_valid
errors.add(:username, 'must be present') if username.blank? && provider.blank?
end