2012-12-19 111 views
2

我在表单中有一个字段,它不应该接受某些特定字词(www,ftp,smtp等)。有没有任何验证器可以使某种黑名单的话,不能写入数据库?对自定义字进行验证

回答

4
validates :subdomain, :exclusion => { :in => %w(www ftp smtp) } 

裁判:rails guide

+0

这正是我所需要的,非常感谢 –

1

您应该创建自己的黑名单验证。 语法可能是

validates :field, :black_list => {:file_path => "/path/to/words_file"} 

您的验证会看每个单词在/path/to/words_file文件,并在模型上添加错误,如果属性field包含一个黑名单字。

+0

这也可以,但Emrah提供了更简单的方法来实现我所需要的。 –

+0

是的,这取决于你想要黑名单的字数。如果你有很多,你会用不必要的数据污染你的模型,但是如果你有足够的话5-7个字Emrah的解决方案正常工作。 – Holin