单词

时间:2015-04-26 21:05:39

标签: 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

1 个答案:

答案 0 :(得分:4)

尝试对#34;格式使用正则表达式验证,而不使用&#34;属性。因此,如果不匹配,则无法提交表单。

validates :body, format: {without: /example/}

其他语法

validates_format_of :body, without: /example/

更多参考资料:

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