2011-04-14 91 views
1

然而,當運行耙:航線它似乎是有:Rails的RoutingError:沒有路由匹配{:控制器=> 「會話」,:動作=> 「消滅」}

 users GET /users(.:format)   {:action=>"index", :controller=>"users"} 
      POST /users(.:format)   {:action=>"create", :controller=>"users"} 
    new_user GET /users/new(.:format)  {:action=>"new", :controller=>"users"} 
    edit_user GET /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"} 
     user GET /users/:id(.:format)  {:action=>"show", :controller=>"users"} 
      PUT /users/:id(.:format)  {:action=>"update", :controller=>"users"} 
      DELETE /users/:id(.:format)  {:action=>"destroy", :controller=>"users"} 
    sessions POST /sessions(.:format)  {:action=>"create", :controller=>"sessions"} 
new_session GET /sessions/new(.:format) {:action=>"new", :controller=>"sessions"} 
    session DELETE /sessions/:id(.:format) {:action=>"destroy", :controller=>"sessions"} 
    signup  /signup(.:format)   {:controller=>"users", :action=>"new"} 
    contact  /contact(.:format)  {:controller=>"pages", :action=>"contact"} 
     about  /about(.:format)   {:controller=>"pages", :action=>"about"} 
     help  /help(.:format)   {:controller=>"pages", :action=>"help"} 
     root  /(.:format)    {:controller=>"pages", :action=>"home"} 

Here are the routes from routes.rb: 

    resources :users 
    resources :sessions, :only => [:new, :create, :destroy] 


    match '/signup', to: 'users#new' 
    match '/contact', to: 'pages#contact' 
    match '/about', to: 'pages#about' 
    match '/help', to: 'pages#help' 

回答

9

這有可能是你沒有通過:ID PARAM在你的路線,這就是爲什麼該路由不匹配,因爲:ID要求:

session DELETE /sessions/:id(.:format) {:action=>"destroy", :controller=>"sessions"} 

注:各地括號:格式PARAM意味着它是可選。

2

這看起來像是我在運行http://ruby.railstutorial.org/時遇到的一個錯誤,事實證明我在routes.rb中留下了一些內容。資源路線的加入是伴隨着以下兩個附加路線:

match '/signin', :to => 'sessions#new' 
match '/signout', :to => 'sessions#destroy' 

很難看到,因爲該組中的第一條路線已經存在,所以我剛剛掩飾組(多次)作爲已經在那裏。

+0

_Why_是否添加此修復路線?這不是關於URL。如果我將URL更改爲/ signoutXXX,它仍然會成功。顯然這是關於動作的,因爲如果我將其更改爲#destroyXXX,它將失敗。事實上_something_將會'會議#破壞'似乎會造成所有差異,所以爲什麼沒有簡單的'resources:sessions'來完成這項工作? – 2011-12-13 13:51:00

-1

resources controller增加了地圖的方法

{:action=>"method", :controller=>"controller"}

當你的情況鐵軌似乎要求明確將地圖作爲

{:controller=>「controller」, :action=>「method」}

:controller:action

前這也回答了Noach的問題是,爲什麼match '/signout', :to => 'sessions#destroy'有存在,如果你耙:路線你會看到它添加

{:controller=>「sessions」, :action=>「destroy」}雖然已經有一個 {:action=>「destroy」, :controller=>「sessions」}通過resources sessions

+0

ruby​​ hashsmaps沒有排序。 – 2017-09-20 11:00:23

8

加入我得到了相同的錯誤well.But的原因是小錯誤,在我看到的頁面我寫 <%= form_for(:session,url:session_path) do |f| %> 哪個我最後'的'會議'。

相關問題