Не найдено ни одного маршрута для уничтожения
Действие уничтожения работает для меня в одной части моего приложения, но я не могу заставить его работать в другом представлении, использующем отдельный контроллер.
Я получаю ошибку: No route matches {:action=>"destroy", :controller=>"letsgo"}
Посмотреть:
<% for letsgo in @letsgos %>
<li>
<b>Let's Go...<span class="content"><%= letsgo.content %></span></b>
<%= link_to 'Delete', { :controller => 'letsgo', :action => 'destroy'},
{ :confirm => 'Are you sure?', :method => :delete, :remote => true} %>
<% end %>
Маршруты:
resources :letsgos, only: [:create, :destroy]
Контроллер LetsGos:
def destroy
@letsgo.destroy
redirect_to root_url
end
Этот код работает, если я нахожусь под letsgos
Посмотреть: <%= link_to "delete", letsgo, method: :delete, data: { confirm: "You sure?" }%>
Уничтожить действие работает, если я работаю под letsgos
посмотреть, но я работаю в другой папке, он больше не работает. То, что я делаю, перечисляет все content
от letsgos
таблицу и предоставляя действие уничтожения для каждого содержимого.
Маршруты:
letsgos_eatdrink GET /letsgos/eatdrink(.:format) letsgos#eatdrink
letsgos_listenwatch GET /letsgos/listenwatch(.:format) letsgos#listenwatch
letsgos_play GET /letsgos/play(.:format) letsgos#play
letsgos_other GET /letsgos/other(.:format) letsgos#other
letsgos_explore GET /letsgos/explore(.:format) letsgos#explore
repost_letsgo POST /letsgos/:id/repost(.:format) letsgos#repost
interested_letsgo POST /letsgos/:id/interested(.:format) letsgos#interested
GET /letsgos(.:format) letsgos#index
POST /letsgos(.:format) letsgos#create
new_letsgo GET /letsgos/new(.:format) letsgos#new
edit_letsgo GET /letsgos/:id/edit(.:format) letsgos#edit
GET /letsgos/:id(.:format) letsgos#show
PATCH /letsgos/:id(.:format) letsgos#update
PUT /letsgos/:id(.:format) letsgos#update
DELETE /letsgos/:id(.:format) letsgos#destroy
2 ответа
Вы не передаете удостоверение личности letsgo
к маршруту:
<%= link_to 'Delete', { :controller => 'letsgos', :action => 'destroy', :id => letsgo.id },
{ :confirm => 'Are you sure?', :method => :delete, :remote => true} %>
Как написано в ваших путях:
letsgo DELETE /letsgos/:id(.:format) letsgos#destroy
Это не проверено, но должно быть так
Это работает и для меня! Просто добавь DATA:
до { :confirm..... }
... и диалог подтверждения удаления работает.
<%= link_to 'Delete', { :controller => 'letsgos', :action => 'destroy', :id => letsgo.id },
data: { :confirm => 'Are you sure?', :method => :delete, :remote => true} %>