У меня есть список пользователей, и я хочу удалить элементы по щелчку ссылки «удалить» в той же строке.Rails - удалить элемент li с Ajax
Просмотров:
# users/index.html.erb
<ul class="users">
<%= render @users %>
</ul>
# users/_user.html.erb
<li id="user-<%= user.id %>">
<%= link_to user.email, user %>
<% if current_user.admin? %>
<%= link_to "delete", user, remote: true, method: :delete, data: { confirm: "You sure?" } %>
<% end %>
</li>
Пользователи Контроллер:
# users_controller.rb
def destroy
User.find(params[:id]).destroy
flash[:success] = "User deleted"
respond_to do |format|
format.html { redirect_to users_url }
format.js
end
end
Javascript, чтобы удалить элемент списка является:
# users/destroy.js.erb
$("li#<%= user.id %>").remove();
по щелчку ничего не происходит, но на странице обновления ресурса правильно уничтожен. LOG Проверка сервера я вижу следующее сообщение об ошибке:
Completed 500 Internal Server Error in 40ms (ActiveRecord: 5.0ms)
ActionView::Template::Error (undefined local variable or method
user' for #<#<Class:0x0000000851d300>:0x00000008e8e7e0>): 1: $("li#<%= user.id %>").remove(); app/views/users/destroy.js.erb:1:in
_app_views_users_destroy_js_erb___2066095411338793994_74738360'
app/controllers/users_controller.rb:46:in `destroy'
Можете ли вы помочь мне пожалуйста понять, где ошибка и почему «пользователь» не определен? Благодаря
редактировать
Я знаю, что есть много д & похожи на этот вопрос, и я на самом деле построить мой код консультационного эти вопросы. Тем не менее, я застрял, и мне нужна поддержка. Pls не помещает вопрос как дубликат.
Привет @ Kirka121 спасибо за Ваш ответ и для вашего объяснения. С вашим кодом я действительно не получаю ошибку, но элемент не исчезает, и мне все еще нужна перезагрузка страницы, чтобы увидеть различия. – davideghz
$ ("li # user - <% = @ user.id%>"). Remove(); вы получаете неправильный идентификатор. –
спасибо @leiliu не видел эту опечатку в ответе Kirka121, теперь все работает – davideghz