Я использую Devise 1.4.7 и пытаюсь интегрировать client_side_validations 3.1.0 в свой проект.Я расширил контроллер регистрации, написав контроллер my_registrations_controller, который унаследован от Devis registrations_controller, использует Super и указал на него через route.db:
devise_for :users, :controllers => { :registrations => "my_registrations" }
Мой файл new.html.erb в представлении my_registrationsвыглядит так:
<h2>Sign in</h2>
<% if !flash[:notice].blank? || !flash[:alert].blank? %>
<div class="notice">
<%= flash[:alert]%>
<%= flash[:notice]%>
</div>
<% end %>
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :Password %><br />
<%= f.password_field :Password %></div>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<div><%= f.submit "Sign in" %></div>
<% end %>
<%= render :Partial => "devise/shared/links" %>
Я следовал инструкциям client_side_validations. Я добавил необходимые библиотеки javascript, добавил rails.validations в файл application.html.erb и раскомментировал необходимые строки в файле инициализатора устройства.
client_side_validations предоставляет пример для интеграции его проверок, когда ваша форма выглядит следующим образом:
<%= form_for @user, :validate => true do |u| -%>
Однако форма Devise отличается и, несмотря на то, что я поставил ": validate => true" в
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
... нет сообщений в форме?Я уверен, что упускаю что-то очевидное.
Примечание: без client_side_validations, если я оставляю поля электронной почты или поля пароля пустыми и нажимаю «Зарегистрироваться», я получаю сообщения об ошибках «не может быть пустым» с сервера.