Вы хотите использовать accepts_nested_attributes_for. В эпизоде Railscasts, о котором упоминал Генриклоевборг, рассказывается о методе такого рода вещей, который был устаревшим методом accepts_nested_attributes_for.
Вы можете сделать это без accept_nested_attributes_for. Что может быть необходимо, если вы не хотите обновляться до Rails 2.3.
В вашем javascript для удаления элемента вы должны добавить в форму скрытое поле с именем _delete со значением true. Тогда в вашем контроллере. Игнорируйте все новые записи с полем _delete и уничтожайте любые существующие.
Все, что встроено в accept_nested_attributes_for
Поиграйтесь с кодом в complex-forms-exmample github хранилище. По сути, это код из Railscast # 75, обновленный для использования более новой функции accepts_nested_attributes_for.
Вы заметите, что он не использует RJS для выполнения динамического добавления / удаления записей. Также по сравнению с тем, что вы делали, оно создается при отправке, а не во время удаленного вызова. Автоматическое добавление / удаление элементов обрабатывается с помощью тегов content_for для создания шаблона, хранящегося в функции javascript, и библиотеки Prototype для изменения скрытого поля, которое accepts_nested_attributes_for использует для уничтожения объектов, которые вы хотите удалить.