Никакой маршрут не сопоставляется {: action => "destroy",: controller => "users" }

Я получаю сообщение об ошибке при попытке доступа пользователей # показать страницу по именованному маршруту (http://localhost: 3000/profile/)... в противном случае у меня нет ошибки при попытке получить к ней доступ стандартный URL (http://localhost: 3000/users/current). Если я трахаю маршруты, маршруты кажутся правильными, и поскольку он работает со стандартным URL-адресом, я действительно не знаю, почему я получаю ошибку "Нет маршрутов". Когда зачем пытаться найти маршрут для действия "уничтожить", когда я даже не пытаюсь получить к нему доступ?

Starcast::Application.routes.draw do

  match "login" => 'user_sessions#new', :as => :login
  match "logout" => 'user_sessions#destroy', :as => :logout
  resources :user_sessions 

  match "profile" => 'users#show'
  resources :users

  resources :casters
  resources :casts
  resources :orders

  root :to => "home#index"

end

Ошибка:

ActionView::Template::Error (No route matches {:action=>"edit", :controller=>"users"}):
    1: <% title "Welcome #{@user.username}" %>
    2: 
    3: <%= link_to "Edit your profil", edit_user_path %> 
    4: 
    5: <% has_role? :caster do %>
    6: <% if @user.caster %>
  app/views/users/show.html.erb:3:in `_app_views_users_show_html_erb___2116234531537545622_2170017780__3613739707062673465'

Ответ 1

Изменить/показать/уничтожить/обновить пути требуется параметр id... т.е. edit_user_path (current_user.id)... Если вы не хотите этого делать, вам нужно будет использовать ваши маршруты для использования ресурсов: пользователь (а не ресурсы: пользователь), который будет вызывать много головной боли позже по дороге, если вы не сделаете это правильно.