Пользовательская проверка Rails 3: выделение ошибочных полей - PullRequest
2 голосов
/ 04 апреля 2011

Я пишу свою первую проверку пользовательских rails и хотел бы пометить нарушающий класс html-классом «error», если они возвращают false - я не могу понять, как это сделать.Соответствующий код проверки ниже - любая помощь приветствуется.

(Если это имеет значение, я использую 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 Ответ

3 голосов
/ 17 мая 2011

Таким образом, в вашей форме у вас будет что-то подобное для поля ввода

<%= form.text_field :title %>

Поскольку ошибки - это хеш, вы можете использовать "include?"такой метод ...

errors.include?(:title)

Это говорит о том, что с этим полем что-то не так.Теперь все, что вам нужно сделать, это стилизовать его.

Удар по троичному оператору asi ...

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

Готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...