2011-04-03 12 views
2

私は最初のカスタムレールバリデーションを書いています。誤ったクラスをHTMLクラスの "error"クラスにタグ付けしたい場合、どうすればよいか分かりませんそれをやる。以下の関連性の高い検証コード。Rails 3カスタムバリデーション:違反しているフィールドを強調表示

だからあなたの形であなたが入力フィールドのために、このような何かを持っていると思います

validates_each :shop do |record, attr, value| 
    shopvar = record.shops.map{ |s| s.email.downcase.strip } 

    if shopvar.count != shopvar.uniq.count 
     record.errors.add(attr, 'has the same email address entered more than once') 
     #record.errors[attr] << "You have entered this shop in the form twice" 
    end 
    end 

答えて

3

を(それが違いをした場合、私はjQueryの使用しています)エラー以来

<%= form.text_field :title %> 

ですあなたは "インクルード"を使用することができますハッシュメソッドのように...

errors.include?(:title) 

これは、このフィールドに問題があることを示しています。今あなたがする必要があるのはそれをスタイルすることだけです。 ASI三項演算子の

モグラ...

<% css_class = errors.include?(:title) ? "highlight_error_class" : "no_problem_class" %> 
<%= form.text_field :title, :class => css_class %> 

完了。

関連する問題