class CleanValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
if value .include? "foo" or "bar" or "baz" or "fiz"
record.errors[attribute] << ("Restricted Word")
end
end
end
我想将限制词"foo" or "bar" or "baz" or "fiz"
移出方法。
答案 0 :(得分:1)
如果你重复自己,那只是不干。你在其他地方使用“foo”或“bar”或“baz”或“fiz”吗?如果没有,或者不打算,可能会过度编码将其分开。
答案 1 :(得分:0)
这是我怎么做的。将受限制的单词列表移动到单独的方法,然后测试该值是否包含在该数组中:
class CleanValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
if restricted_words.include?(value)
record.errors[attribute] << ("Restricted Word")
end
end
def restricted_words
['foo', 'bar', 'baz', 'fiz']
end
end