Rails 验证

2024 年 12 月 18 日 | 2 分钟阅读

Rails 验证为每个 Active Record 模型类定义有效状态。它们用于确保只有有效的详细信息输入到您的数据库中。Rails 使您可以轻松地将验证添加到您的模型类,并允许您创建自己的验证方法。 使用内置的验证 DSL,您可以执行多种验证。

当 Active Record 模型类验证失败时,它被认为是一个错误。每个 Active Record 模型类维护一个错误集合,当发生验证错误时,该集合向用户显示适当的错误信息。

Rails 内置的验证方法

方法描述
validates_acceptance_of此验证由用户通过选中复选框来接受服务条款协议来完成
validates_associated验证关联对象本身是否都有效。适用于任何类型的关联。
validates_confirmation_of它验证用户是否在第二个条目字段中输入了匹配的信息,例如密码或电子邮件。
validates_each根据一个块验证每个属性。
validates_exclusion_of验证属性是否不在特定的可枚举对象中。
validates_format_of
使用正则表达式验证属性的值,以确保它是正确的格式。
validates_inclusion_of验证属性的值是否在特定的可枚举对象中可用。
validates_length_of验证属性的长度是否符合指定的长度限制。
validates_numericality_of验证属性是否为数字。
validates_presence_of验证属性是否不为空白。
validates_size_of这是 validates_length_of 的别名
validates_uniqueness_of验证属性在数据库中是否唯一。

跳过验证

以下 Rails 方法跳过验证,并将对象保存到数据库,而不考虑其有效性。 应该谨慎使用它们。

  • decrement!
  • decrement_counter
  • increment!
  • increment_counter
  • toggle!
  • touch
  • update_all
  • update_attribute

valid? and invalid?

在保存 Active Record 对象之前,Rails 会进行验证。 如果产生任何错误,则不会保存对象。

valid? 触发您的验证,如果没有发现错误则返回 true,否则返回 false。

示例

invalid? 只是 valid? 的反面。 它触发您的验证,如果无效则返回 true,否则返回 false。


下一主题Ruby on rails ajax