我正在尝试在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
答案 0 :(得分:4)
尝试对#34;格式使用正则表达式验证,而不使用&#34;属性。因此,如果不匹配,则无法提交表单。
validates :body, format: {without: /example/}
其他语法
validates_format_of :body, without: /example/
更多参考资料:
http://api.rubyonrails.org/classes/ActiveModel/Validations/HelperMethods.html