我知道ActiveRecord提供了一些像validates_uniqueness_of
validates_size_of
这样的宏
为用户输入做一些验证。但我想知道是否有可能提供
一些回调类似验证方法,用作模型级别的cutomised验证方法。例如,
我想检查输入字符串只有从'a'到'h'的字母,有趣吗?但它不时发生。
答案 0 :(得分:1)
rails guides有一个很好的例子,说明如何创建自己的自定义验证器。如果你使用的是Rails 3,你可以这样做:
class Foo < ActiveRecord::Base
validate :from_a_to_h
# Use the name of your attribute in place of :input and input.
def from_a_to_h
errors.add(:input, "must contain only letters from a to h") if input =~ /[i-Z]+/
end
end
答案 1 :(得分:1)
您可以使用以下方式创建自定义函数:
validate :custom_function
def custom_function
...
end
您还可以使用正则表达式来验证字符串。对于你的例子,我会使用:
validates_format_of :attribute, :with => /^[a-h]+$/