2012-05-14 1 views
4

У меня на одной странице 2 формы для модели User - и это проблема, почему я получаю ошибку Uncaught TypeError: Cannot read property 'presence' of undefined. Когда я удаляю один form_for @user, поэтому Проверка на стороне клиента работает хорошо. Но нет, если на одной странице две модели и две формы: @user.Возврат подтверждения на стороне клиента «Неподключить TypeError: Невозможно прочитать свойство« присутствие »неопределенного»

Но проблема в том, что мне нужно иметь на одной странице эту модель и форму дважды. Есть ли способ решить эту проблему?

ответ

2

для меня, вторая ошибка, вы можете описать в комментариях, т.е. Uncaught TypeError: Cannot read property 'first_user[name]' of undefined, по-видимому, вызванное транспонированной формы ID.

Существует проблема на ClientSideValidation об этом здесь:

https://github.com/bcardarella/client_side_validations/issues/325

Добавление html => { id: 'user_new' } к form_for вызова решается вопрос. Теперь я вызываю метод, подобный этому (изменен из оригинального шаблона Devise):

<%= form_for(resource, 
    :as => resource_name, 
    :validate => true, 
    :html => { id: 'user_new' }, 
    :url => registration_path(resource_name)) do |f| %> 

HTH.

1

Убедитесь, что вы используете разные идентификаторы параметров для обоих пользователей:

<!-- First form for user --> 
<%= form_for(@user, :as => :first_user) do |f| %> 
    ... 
<% end %> 

<!-- Second form for user on the same page --> 
<%= form_for(@user, :as => :second_user) do |f| %> 
    ... 
<% end %> 
+2

благодарит за ответ. Я пытался использовать идентификаторы, но когда я это сделал, у меня появилось сообщение об ошибке (ошибка JS) 'Uncaught TypeError: невозможно прочитать свойство 'first_user [name]' undefined' – user984621

+0

Прикомандированный, я тоже вижу эту ошибку. – Leo