单词的表单验证排除

ana*_*rce 1 ruby-on-rails-4

我正在尝试向 Rails 4.1 项目中的简单表单添加验证。如果文本字段包含禁用词,我需要拒绝表单提交。我的其他验证有效,但不是这个。因此,如果用户未输入任何值或输入的值太长,则会被拒绝并显示错误消息。

我的设置类似于边缘指南(http://edgeguides.rubyonrails.org/active_record_validations.html#exclusion),但如果我输入“我最喜欢的颜色是红色”,表单提交仍然会通过。我应该怎么做?

我的型号:

class ColorEntry < ActiveRecord::Base
  validates :body, presence: true 
  validates :body, length: { maximum: 255 }
  validates :body, exclusion: { in: %w(red) }
end
Run Code Online (Sandbox Code Playgroud)

Gus*_*ego 5

尝试对带有“without”属性的格式使用正则表达式验证。因此,如果不匹配,则无法提交表单。

validates :body, format: {without: /example/}
Run Code Online (Sandbox Code Playgroud)

其他语法

validates_format_of :body, without: /example/
Run Code Online (Sandbox Code Playgroud)

更多参考资料:

http://api.rubyonrails.org/classes/ActiveModel/Validations/HelperMethods.html