У меня есть форма с вложенными атрибутами, где вы можете динамически добавлять и удалять атрибуты (форма позволяет вам нажимать «добавить хобби» и «удалять хобби» ссылки ... у пользователя есть хобби , и при входе в его профиль он может добавить одно, два, пять или пятьдесят хобби).Rails: удалить вложенный атрибут при обновлении записи
С помощью nested form gem это работает полностью нормально. Тем не менее, я также предоставляю возможность ОБНОВЛЕНИЯ профиля пользователя.
При этом пользователь может щелкнуть динамическую ссылку «удалить», чтобы снять хобби. Однако это не удаляет «хобби» из базы данных, как я этого хочу. Поэтому я пытаюсь написать Jquery или Javascript или что-то, что удаляет объект из базы данных, если он существует.
Это то, что код выглядит следующим образом:
...
...
<%= f.fields_for :hobbys, :wrapper => false do |hobby| %>
<tr class="fields">
<td> <%= user.text_field :hobby %> </td>
<td> <%= user.link_to_remove "Remove" %> </td>
</tr>
<% end %>
</table>
<p><%= f.link_to_add "Add hobby", :hobbys, :data => { :target => "#hobbys" } %></p>
<script>
$(document).on('nested:fieldRemoved', function(event){
var field = event.field;
/* ??? Delete field somehow ??? */
})
</script>
Есть ли способ сделать это? Я действительно не знаю, как идти об этом .... это не похоже Jquery может удалить от базы данных ...
UPDATE
вот моя лучшая попытка до сих пор ...
...
...
<%= f.fields_for :hobbys, :wrapper => false do |hobby| %>
<tr class="fields">
<td> <%= user.text_field :hobby %> </td>
<td> <%= user.link_to_remove "Remove" %> </td>
</tr>
<% end %>
</table>
<p><%= f.link_to_add "Add hobby", :hobbys, :data => { :target => "#hobbys" } %></p>
<script>
$(document).on('nested:fieldRemoved', function(event){
$.get("delete", { id: 2 })
alert("Deleted: ");
})
</script>
Я просто пытаюсь заставить эту проклятую вещь работать, жестко кодируя id как аргумент (так как я пока не могу его легко извлечь). Но он продолжает использовать строку «delete» как идентификатор пользователя ..... да?
Вот вывод журнала:
Started GET "https://stackoverflow.com/users/delete?id=2" for 127.0.0.1 at 2016-10-05 08:35:15 -0400
Processing by UsersController#show as */*
Parameters: {"id"=>"delete"}
Current user: anonymous
Completed 404 Not Found in 19.5ms
ActiveRecord::RecordNotFound (Couldn't find User with id=delete):
Я продолжаю получать сообщение об ошибке, что нет пользователя с id = "delete" ...... я не понимаю – ineedahero