Я использую devise в своем приложении rails 3.2.
У меня есть страница пользователей / новая, где администратор заполняет адрес электронной почты, а затем создается пользователь со случайным паролем.
Все это прекрасно работает.
Я хочу создать динамическую форму, чтобы администратор мог создавать столько пользователей, сколько они хотят. Должны быть кнопка «Добавить поле пользователя» и кнопка «Удалить поле пользователя», позволяющие создавать новые поля для пользователей.
Я не могу заставить jquery работать с формой.
Я пытался использовать то, что было описано в этом вопросе:
Создание динамической HTML-формы
Мой код выглядит следующим образом (обратите внимание, что я использую @manager вместо @user в форме, чтобы не путать рельсы с current_user. Тем не менее @manager создает нового пользователя.
Пользователи / новый
<%= form_for(@manager) do |f| %>
<% if @manager.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@manager.errors.count, "error") %> prohibited this manager from being saved:</h2>
<ul>
<% @manager.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<span class="add">Add fields</span>
<div class="actions">
<%= f.submit %>
Приложение / активы / JavaScripts / application.js
//= require jquery
//= require jquery_ujs
//= require_tree .
$(document).ready(function() {
$(".add").click(function() {
$(".field:first").clone(true).insertBefore(this);
return false;
});
});
Тем не менее, когда я нажимаю на Добавить поля, ничего не происходит. Я вполне уверен, что если я смогу заставить форму отправлять правильные параметры, тогда я смогу работать с контроллером так, как я хочу.
По сути, почему функция клона не работает в приведенном выше примере, и как я могу получить динамическую форму для создания нескольких пользователей одновременно.
Кроме того, я пропустил метод удаления полей, поскольку он, очевидно, тоже не работает.
РЕДАКТИРОВАТЬ: я изменил селектор на «.add» и я изменил «.field» на «.field: first», но он все еще не работает.