пользовательская разметка валидации в Rails (3) - PullRequest
1 голос
/ 19 января 2011

Я пытаюсь выполнить следующую разметку для всех элементов формы

<div class="input-container">
  <label>Topic Title</label>
  <div class="input-holder">
    <input type="text" />
  </div>
</div>

<div class="textarea-container">
  <label>Post</label>
  <div class="textarea-holder">
    <textarea></textarea>
  </div>
</div>

разметка недопустимых полей:

<div class="input-container alert">
  <label>Topic Title</label>
  <div class="input-holder">
    <input type="text" />
  </div>
</div>
<div class="textarea-container alert">
  <label>Post</label>
  <div class="textarea-holder">
    <textarea></textarea>
  </div>
</div>

вот моя текущая разметка хамла:

.input-container
  = f.label :title, 'Topic Title'
  .input-holder
    = f.text_field :title
.textarea-container
  = f.label :body, 'Post'
  .textarea-holder
    = f.text_area(:body, :size => "60x10")

Что мне нужно сделать, если я хочу, чтобы у контейнерных элементов div был класс оповещения, когда поле в моей форме недопустимо?

Ответы [ 2 ]

0 голосов
/ 19 января 2011

Лучше всего использовать формулу или simple_form , которые из коробки поддерживают выделение отдельного недопустимого поля.

Я почти уверен, что они делают это, изменяя класс CSS на поле или его контейнере, который вы также можете использовать в своих таблицах стилей.

0 голосов
/ 19 января 2011

Я хочу сделать то же самое, но, к сожалению, не нашел чистого способа справиться с этим.

Вы можете переопределить ActionView :: Base.field_error_proc, но это не поможет с включающими элементами.

Это можно сделать вручную, проверяя ошибки в каждом поле ('post.errors [' body ']. Nil?') И выводя класс предупреждений условно.

Следующим шагом может быть извлечение логики в помощник вида и, возможно, некоторая дополнительная абстракция после этого.

Но было бы неплохо сделать это более автоматизированным способом Rails-y.

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