Rails 3自定义验证:突出显示违规字段

时间:2011-04-03 22:56:01

标签: ruby-on-rails-3 validation

我正在编写我的第一个自定义rails验证,并且如果它们返回false,则希望使用html“error”类来标记有问题的类 - 我无法弄清楚如何执行它。以下相关验证码 - 任何帮助表示赞赏。

(如果它有所作为,我正在使用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

1 个答案:

答案 0 :(得分:3)

因此,在您的表单中,您对输入字段有类似的内容

<%= form.text_field :title %>

由于错误是哈希,你可以使用“include?”这样的方法......

errors.include?(:title)

这告诉你这个字段有问题。现在你需要做的就是设计风格。

重击三元运营商...

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

完成。