2011-04-03 80 views
2

我正在編寫我的第一個自定義rails驗證,並且如果它們返回false,我想用html「error」類標記違規類 - 我無法弄清楚如何做到這一點。下面的相關驗證代碼 - 任何幫助表示讚賞。Rails 3自定義驗證:突出顯示違規字段

(如果它的確與衆不同,我使用jQuery)

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

因此,在您的形式你有這樣的事情輸入域

<%= 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 %> 

完成。