在我的RoR应用程序中,我想阻止用户重复表单上文本区域中的特定单词。我有一个表单,允许用户输入要通过电子邮件发送的文本,我想阻止他们说出单词" var1"不止一次。这可能吗?
我尝试在我的模型中使用以下验证,但这不起作用:
class Email < ActiveRecord::Base
belongs_to :account
has_many :recipients
has_many :contacts, through: :recipients, :dependent => :destroy
has_many :groups, through: :recipients, :dependent => :destroy
validate :singular_var1
private
def singular_var1
if message.scan(/"var1"/).length > 1
errors.add :message, 'You must not repeat the word VAR1'
end
end
end
答案 0 :(得分:1)
由于您使用的是正则表达式,因此只需删除引号:
...
if message.downcase.scan(/var1/).length > 1
errors.add :message, 'You must not repeat the word VAR1'
end
...
但是,请记住您当前使用它的方式,它只会捕获小写的“var1”,而不是大小写或大写。如果您希望它捕获任何套管变化,请改为:
require