LoginSignup
3
2

More than 5 years have passed since last update.

Railsチュートリアル [第7章〜第8章] ユーザー登録でRouting Errorになる

Posted at

Railsチュートリアル 5.1(第4版)でユーザー登録しようとするとRouting Errorになる。

事象

No route matches [POST] "/signup"
FireShot Capture 9 - Action Controller_ Exception caught_ - https___c4f654647d084bcebf4c1035ed4.png

原因

routesファイルにpost '/signup', to: 'users#create'がなかったため。
第8章のリスト8.2の記載どおりに修正してしまった。

リスト 7.26: ユーザー登録のルーティングにPOSTリクエストを追加する

config/routes.rb
Rails.application.routes.draw do
  root 'static_pages#home'
  get  '/help',    to: 'static_pages#help'
  get  '/about',   to: 'static_pages#about'
  get  '/contact', to: 'static_pages#contact'
  get  '/signup',  to: 'users#new'
  post '/signup',  to: 'users#create'
  resources :users
end

リスト 8.2: リソースを追加して標準的なRESTfulアクションをgetできるようにする

config/routes.rb
Rails.application.routes.draw do
  root   'static_pages#home'
  get    '/help',    to: 'static_pages#help'
  get    '/about',   to: 'static_pages#about'
  get    '/contact', to: 'static_pages#contact'
  get    '/signup',  to: 'users#new'
  get    '/login',   to: 'sessions#new'
  post   '/login',   to: 'sessions#create'
  delete '/logout',  to: 'sessions#destroy'
  resources :users
end

対応

下記のとおりに修正した。

config/routes.rb
Rails.application.routes.draw do
  root   'static_pages#home'
  get    '/help',    to: 'static_pages#help'
  get    '/about',   to: 'static_pages#about'
  get    '/contact', to: 'static_pages#contact'
  get    '/signup',  to: 'users#new'
  post   '/signup',  to: 'users#create'
  get    '/login',   to: 'sessions#new'
  post   '/login',   to: 'sessions#create'
  delete '/logout',  to: 'sessions#destroy'
  resources :users
end
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2