【发布时间】:2012-03-17 23:29:28
【问题描述】:
我正在做 Michael Hartls Ruby on Rails 教程,当我尝试浏览到 localhost:3000/sessions 时遇到路由错误
路由错误
没有路由匹配“/sessions”
从教程中,我的印象是 rails 会推断到“会话”的路由,我不需要向 routes.rb 添加规范路由。
如果我运行 rake 路线,我会得到以下结果
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"}
root /(.:format) {:controller=>"pages", :action=>"home"}
signup /signup(.:format) {:controller=>"users", :action=>"new"}
signin /signin(.:format) {:controller=>"sessions", :action=>"new"}
signout /signout(.:format) {:controller=>"sessions", :action=>"destroy"}
about /about(.:format) {:controller=>"pages", :action=>"about"}
contact /contact(.:format) {:controller=>"pages", :action=>"contact"}
help /help(.:format) {:controller=>"pages", :action=>"help"}
我的 routes.rb 包含
SampleApp::Application.routes.draw do
resources :users
resources :sessions, :only => [:new, :create, :destroy]
root :to => 'pages#home'
match '/signup', :to => 'users#new'
match '/signin', :to => 'sessions#new'
match '/signout', :to => 'sessions#destroy'
match '/about', :to => 'pages#about'
match '/contact', :to => 'pages#contact'
match '/help', :to => 'pages#help'
如果我将以下行添加到 routes.rb,我可以让它工作,但我认为我不需要明确地这样做
match '/sessions',:to => 'sessions#create'
我是否遗漏了什么或误解了什么?
我正在运行 Rails 3.0.11 和 Ruby 1.9.2p290
【问题讨论】:
标签: ruby-on-rails