2012-04-26 12 views
9

私はカスタムバリデーターを持っていますが、失敗したにもかかわらずエラーメッセージを出力しようとしています。私が正しい場所でこれをやっているかどうか誰かに教えてもらえますか?カスタムバリデーターにエラーメッセージを追加する

class User < ActiveRecord::Base 
    self.table_name = "user" 

    attr_accessible :name, :ip, :printer_port, :scanner_port 

    validates :name,  :presence => true, 
          :length => { :maximum => 75 }, 
          :uniqueness => true       

    validates :ip,   :length => { :maximum => 75 }, 
          :allow_nil => true  

    validates :printer_port, :presence => true, :if => :has_association? 

    validates :scanner_port, :presence => true, :if => :has_association?   

    def has_association? 
    ip != nil 
    end 
end 

は、私は次のようにそれを持っていた:

validates :printer_port, :presence => true, :message => "can't be blank", :if => :has_wfm_association? 

をしかし、エラー

Unknown validator: 'MessageValidator' 

を受けていたと私はバリデータの末尾にメッセージを入れしようとしたときにカンマseperating has_association?

validates :printer_port, :presence => {:message => "can't be blank", :if => :has_wfm_association?} 

あなたは、単一の行に複数のバリデーションを読み込むことができますので、これは次のとおりです:

答えて

17

messageifパラメータがpresenceのハッシュ内にある必要があります疑問符とコンマオレンジ色になった

validates :foo, :presence => true, :uniqueness => true 

あなたが行ったやり方、あるいはifの状態にメッセージを追加しようとすると、Railsはメッセージ/条件を適用する検証を知らないでしょう。代わりに、メッセージごとに検証を設定する必要があります。

validates :foo, :presence => {:message => "must be present"}, 
       :uniqueness => {:message => "must be unique"} 
+0

trueのステートメントを存在させる必要はありませんか?私はこれをするとき?ハッシュの終わりは一緒に走っていて、両方ともオレンジ色になっています。 – Jay

+0

ちょうどスペースを置くために必要な、あなたの助けに感謝ディランは非常に感謝:) – Jay

+0

私はどのように受け入れることができますか? – Jay

関連する問題