У меня самая странная проблема! В моем приложении RoR у меня есть цикл .each. Каждая итерация имеет link_to «Удалить» для этой конкретной итерации:link_to удалить, удалить неправильную запись
- @evints.each do |e|
.inteventimg
= link_to e.event.name, e.event
= e.id
%br
- if e.event.images.exists?
= image_tag(e.event.images.find_by(:prime => true).location.full.url)
%br
- if current_user
= link_to "Delete #{e.id}", e, :method => :delete, data: {:confirm => 'Are you sure?'}
Evint является объединением таблиц в has_many через отношения между интересом и событием; в моем контроллере интересов по показам, я определил @evints как @ interest.evints.
Все работает - отображаются правильные изображения, правильный e.id появляется как рядом с именем e.name, так и самой ссылкой «Удалить»; но последовательно, первое удаление на странице удаляется, а не тот, для которого нажата кнопка «Удалить». Я не могу понять. , , У кого-нибудь есть идеи?
EDIT: Вот код удаления из контроллера Evint:
def destroy
@evint = Evint.find_by(params[:id])
authorize @evint
if @evint.destroy
flash[:notice] = "Your evint has been removed."
redirect_to :back
else
flash[:error] = "Evint couldn't be deleted. Please try again."
redirect_to :back
end
конец
Спасибо.
Убедитесь, что вызывается правильное действие # контроллера. И можете ли вы опубликовать код действия удаления? – Swards
Я добавил код действия контроллера выше. –