Я использую Lightbox Gone Wild для отображения модального диалога с формой внутри. Я использую ваниль Новый взгляд. Это работает как чемпион до тех пор, пока пользователь не введет правильные данные формы. Неверные данные приводят к тому, что контроллер направляет пользователя в представление New непосредственно с сообщением об ошибке. Очевидно, я бы предпочел, чтобы ошибка была возвращена модальной, хотя я понимаю причину, по которой пользователь перенаправляется в обычный новый режим просмотра с ошибками.
Один очевидный, но непрактичный вариант - написать пользовательскую проверку на стороне клиента. Другой способ - создать логику проверки на стороне клиента на основе проверок моделей. Для этого я нашел два плагина для младенцев, которые используют validation_reflection . В то время как validatious-on-rails буквально неделями client_side_validation , похоже, заброшен. Наконец, использование form_remote_tag также выглядит многообещающе, поскольку оно выполняет обратную передачу AJAX, и похоже, что оно не выполнит обновление при ошибке.
Таким образом, я ищу наиболее традиционный способ проверки ввода пользователя в форме, представленной пользователю в модальном диалоге, и при ошибке, возвращая их в это диалоговое окно с ошибками.
Код для открытия модального
<% link_to 'New Project...', new_project_path, :class => 'lbOn' %>
Новый просмотр
<% form_for(@project) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_field :description %>
</p>
<p>
<%= f.submit 'Create' %><br />
<a href="#" class="lbAction" rel="deactivate">Cancel</a>
</p>
<% end %>