设为首页 加入收藏

TOP

关于Validation的方法使用(四)
2023-07-23 13:24:53 】 浏览:134
Tags:关于 Validation 方法使
g: "%{count} characters is the maximum allowed" } end

numericality数值

class Player < ApplicationRecord
  validates :points, numericality: true
  validates :games_played, numericality: { only_integer: true }
end

这段代码是一个 Rails 应用程序中的 ActiveRecord 模型类,它用于定义一个名为 Player 的类,并对其中的 pointsgames_played 属性进行验证。

在这个例子中,validates 方法用于为 points 属性添加一个验证规则。具体来说,使用了 numericality 选项,表示要验证属性的值是否为数值类型。这个验证器将确保 points 属性的值包含一个有效的数值。例如,如果 points 的值为 "123" 或 "123.45",则验证将通过,但如果 points 的值为 "abc" 或 "123abc",则验证将失败。

在第二个验证器中,同时通过了 numericalityonly_integer 选项,表示要验证 games_played 属性的值是否为整数类型。这个验证器将确保 games_played 属性的值为一个整数。例如,如果 games_played 的值为 "123",则验证将通过,但如果 games_played 的值为 "123.45" 或 "abc",则验证将失败。

需要注意的是,这些验证器只是验证属性的值是否为数值类型或整数类型,而不是具体的值是否符合特定的条件。如果需要对属性的值进一步验证,可以使用其他类型的验证器,例如 inclusionexclusionlengthformat 等。

在实际应用中,这些验证器可以用于确保 Player 对象的 pointsgames_played 属性包含有效的数值或整数类型的值。如果验证失败,则会在模型对象的 errors 集合中添加一个错误消息。这个错误消息的默认内容为 "is not a number" 或 "must be an integer",具体内容取决于验证器的选项。如果需要自定义错误消息,可以像我在之前的回答中所述那样使用 message 选项。

这些选项是用于 numericality 验证器的子选项,用于进一步验证属性的值是否符合特定的条件,具体说明如下:

  1. greater_than - 指定属性的值必须大于指定的值。默认错误消息为 "must be greater than %{count}"。
  2. greater_than_or_equal_to - 指定属性的值必须大于或等于指定的值。默认错误消息为 "must be greater than or equal to %{count}"。
  3. equal_to - 指定属性的值必须等于指定的值。默认错误消息为 "must be equal to %{count}"。
  4. less_than - 指定属性的值必须小于指定的值。默认错误消息为 "must be less than %{count}"。
  5. less_than_or_equal_to - 指定属性的值必须小于或等于指定的值。默认错误消息为 "must be less than or equal to %{count}"。
  6. other_than - 指定属性的值必须不等于指定的值。默认错误消息为 "must be other than %{count}"。
  7. in - 指定属性的值必须在指定的范围内。默认错误消息为 "must be in %{count}"。
  8. odd - 如果设置为 true,则指定属性的值必须是奇数。默认错误消息为 "must be odd"。
  9. even - 如果设置为 true,则指定属性的值必须是偶数。默认错误消息为 "must be even"。

这些选项可以与其他验证器组合使用,以进一步验证属性的值是否符合特定的条件,并提供自定义错误消息。例如,可以使用以下验证器验证属性的值是否为正数:

validates :number, numericality: { greater_than: 0, message: "must be a positive number" }

如果属性的值不是正数,则会在模型对象的 errors 集合中添加一个错误消息,内容为 "must be a positive number"。这样可以帮助开发者更好地控制数据的有效性,提高应用程序的稳定性和可靠性。

presence验证为空

class Person < ApplicationRecord
  validates :name, :login, :email, presence: true
end

这段代码是一个 Rails 应用程序中的 ActiveRecord 模型类,它用于定义一个名为 Person 的类,并对其中的 nameloginemail 属性进行验证。

在这个例子中,validates 方法用于为 nameloginemail 属性添加一个验证规则。具体来说,使用了 presence 选项,表示要验证属性的值是否存在,即不能为空值或空字符串。这个验证器将确保 nameloginemail 属性的值都不为空。如果其中任何一个属性的值为空,则验证将失败。

需要注意的是,presence 验证器只是验证属性的值是否存在,而不是具体的值是否符合特定的条件。如果需要对属性的值进一步验证,可以使用其他类型的验证器,例如 lengthformatinclusionexclusion 等。

在实际应用中,这些验证器可以用于确保 Person 对象的 nameloginemail 属性都不为空。如果验证失败,则会在模型对象的 errors 集合中添加一个错误消息。这个错误消息的默认内容为 "can't be blank",表示属性的值不能为空。如果需要自定义错误消息,可以像我在之前的回答中所述那样使用 message 选项。

absence

class Person < ApplicationRecord
  validates :name, :login, :email, absence: true
end

这段代码是一个 Rails 应用程序中的 ActiveRecord 模型类,它用于定义一个名为 Person 的类,并对其中的 nameloginemail 属性进行验证。

在这个例子中,validates 方法用于为 nameloginemail 属性添加一个验证规则。具体来说,使用了 absence 选项,表示要验证属性的值是否不存在,即必须为 nil 或空字符串。这个验证器将确保 nameloginemail 属性的值都不存在。如果其中任何一个属性的值不为空,则验证将失败。

需要注意的是,absence 验证器与 presence 验证器相反。presence 验证器用于验证属性的值是否存在,而ab

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇没有了 下一篇Callback详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目