Я совершенно новый для рельсов и борьбы с самыми легкими вещами. У меня есть следующая проблема:Rails destroy не работает и пересылает неправильную ссылку
Когда я пытаюсь уничтожить поиск (из моего поиска модели), он не работает, и я перенаправляюсь на «/search.48 (поиск с идентификатором 48). Это дает мне уведомление «Мы сожалеем, но что-то пошло не так», и в консоли он говорит что-то с POST. Ни поиск не удаляется, либо работает redirect_to search_path. Что я делаю неправильно?
Это мой контроллер:
def show
@searches = current_user.searches
end
def destroy
@search = Search.find(params[:id])
@search.destroy
flash[:success] = "Search deleted"
redirect_to search_path
end
Это мой вид шоу:
<% @searches.each do |search| %>
<%= search.title %>
<%= search.description %>
<%= button_to "delete", search, method: :destroy %>
Мой routes.rb:
get 'search' => 'searches#show'
resources :searches
И я включил <%= javascript_include_tag 'application' %>
в application.html.erb, а также //= require jquery
и //= require jquery_ujs
в application.js файл.
Так что я действительно не могу найти свою ошибку. Кто-нибудь может мне помочь?
Спасибо за ваш ответ. Если я использую вашу идею, появляется кнопка, и когда я нажимаю на нее, страница /search.48 по-прежнему загружается и ничего не удаляется ... – Eckenmeyer
Мне интересно, некорректно ли кнопка создана или перенаправление неверно. Я думаю, что если вы попытаетесь перенаправить на «search_path» после удаления, он сгенерирует путь, используя только что удаленный поиск, что может быть, почему вы ничего не видите. Попробуйте 'redirect_to search_path' в контроллере (вместо' search_path ') –
Думаю, я понял! В моем маршрутизаторе я worte получаю 'search' => 'search # show', и каким-то образом мой контроллер был путать с search_path. Поскольку я переименовал его, чтобы получить 'mysearches' => 'search # show' и mysearches_path, он отлично работает. – Eckenmeyer