当我尝试通过命名路由 (http://localhost:3000/profile/) 访问 users#show 页面时,我遇到了错误... 但是当我使用标准的 URL (http://localhost:3000/users/current) 访问时没有出现错误。如果我使用 rake routes 命令,则路由似乎正确,因为它可以正常工作,所以我真的不知道为什么会出现 No route matches 错误。为什么在我甚至没有尝试访问它时要查找动作 'destroy' 的路由匹配?
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'