Ruby on rails Rails 6-获取单个属性的错误消息

Ruby on rails Rails 6-获取单个属性的错误消息,ruby-on-rails,ruby-on-rails-6,Ruby On Rails,Ruby On Rails 6,我希望能够轻松地获取模型验证时返回的错误消息,而不必担心任何问题。比如: Person.errors(name: "") -> "Name can't be blank" Person.errors(name: "___") -> "Name cannot contain underscores" 为什么??我想检查测试中的错误消息,如果我可以根据提供的值轻松获取单个属性(或多个属性)的错误消息,而不必使用不必要的参数构建对象,然后运行valid,那就太好了?或者使用以后可能更改

我希望能够轻松地获取模型验证时返回的错误消息,而不必担心任何问题。比如:

Person.errors(name: "")
-> "Name can't be blank"

Person.errors(name: "___")
-> "Name cannot contain underscores"
为什么??我想检查测试中的错误消息,如果我可以根据提供的值轻松获取单个属性(或多个属性)的错误消息,而不必使用不必要的参数构建对象,然后运行valid,那就太好了?或者使用以后可能更改的字符串文字

澄清:

关于这个问题似乎有一些问题。假设一个模型有3条不同的消息(甚至只有1条),它们可以基于一个特定属性
username
(称为a、B和C)返回。我想知道根据我给出的示例测试输入返回的确切消息。所以,如果我调用
User.errors(用户名:“123”)
它将返回“用户名不能包含数字”。如果我输入
User.errors(username:“z”)
它会返回“username必须是5个或更多字母”,等等


我希望这样做的主要原因是为了在测试中保持干净,以确保返回正确的错误消息而不键入文本,因此
assert_equal User.errors(用户名:“z”),flash[:danger]
而不是
“用户名必须是5个或更多字母”,flash[:danger]

我可能会选择send函数,该函数概括了可以放在应用程序帮助程序或其他东西中的模型和属性。如果尝试创建的记录中存在多个错误,该怎么办?然后它将返回这些消息的数组。但在提供多个参数的情况下会出现这种情况。在我的例子中,单个属性应该只有一个错误,但我想它可能有多个错误,例如“太长”和“无效字符”。
@person.errors[:name]
?@JoshBrody谢谢,但我需要提供一个测试字符串。见上文的澄清。