关于Ruby on Rails:尝试验证表单时出现错误:”未知验证器:’PresencesValidator'”

Error: “Unknown validator: 'PresencesValidator'” when trying to validate a form

我正在从事第一个Rails项目,并且已经使用Rails构建了一个小型站点,现在我正尝试遵循Rails入门教程来构建博客。

在尝试验证我的博客帖子时,我停留在6.5的http://guides.rubyonrails.org/getting_started.html上,这是我得到的错误:Unknown validator: 'PresencesValidator'

这是我的帖子模型

1
2
3
4
5
class Post < ActiveRecord::Base
    validates :name, :presence => { :message =>"Name cannot be blank" }
    validates :title, :presence => { :message =>"Title cannot be blank" }
    validates :content, :presences => { :message =>"Content cannot be blank" }
end

我也尝试只设置:presence => true,但是有同样的错误。

为什么会出现此错误以及如何解决?


因为这是一个错字:

1
validates :content, :presences => { :message =>"Content cannot be blank" }

您打算写presence时写了presences

此外,您在这些消息上给出的消息是默认消息,因此您实际上不需要提供它。

最后一件事,如果您想验证三件事的存在,可以通过以下方式一行完成:

1
validates_presence_of :name, :title, :content

这将完成与您尝试编写的代码相同的行为。有两种验证语法,当您对每个属性进行大量验证时,您一直使用的一种语法比较好;我个人认为,当您要运行相同的验证具有许多不同的属性时,另一种语法则更好。基本上任何一个都需要较少的键入。

请参阅"验证和回调"指南作为参考。干杯。