2010-12-07 10 views
0

私はActiveRecordがvalidates_uniqueness_ofvalidates_size_of のようないくつかのマクロを提供していることを知っています。モデルレベルでcutomised検証メソッドとして使用されるいくつかのコールバックのような検証メソッドを に提供することが可能かどうかは疑問です。たとえば、 文字列の入力文字列を 'a'から 'h'にチェックしたいのですが、面白いですか?それは時々起こった。レールモデルに顧客バリデータを追加する方法

答えて

1

あなたがしてカスタム関数を作成することができます:あなたがRailsの3を使用している場合は、このようにそれを行うことができ

validate :custom_function 

def custom_function 
    ... 
end 

また、文字列を検証するために正規表現を使用することができます。あなたの例では、私は使用するでしょう:

validates_format_of :attribute, :with => /^[a-h]+$/ 
1

rails guidesには、独自のカスタムバリデータの作成方法の良い例があります。

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 
関連する問題