現在Ruby on Railsで、ログイン機能を作成しています。ルーティングエラーが出ていて詰まってしまいました。
エラー内容
Routing Error No route matches [POST] "/sessions/new" Routes match in priority from top to bottom
ルーティング
Rails.application.routes.draw do root to: 'toppages#index' get 'sessions/new' get 'sessions/create' get 'sessions/destroy' resources :users, only: [:show, :new, :create, :edit, :update, :destroy] end
コントローラー
class SessionsController < ApplicationController def new end def create email = params[:session][:email].downcase password = params[:session][:password] if login(email, password) flash[:success] = 'ログインに成功しました' redirect_to @user else flash.now[:danger] = 'ログインに失敗しました' render new end end def destroy end private def login(email, password) @user = User.find_by(email: email) if @user && @user.authenticate(password) session[:user_id] = @user.id return true else return false end end end
ビュー
<h1>Sessions#new</h1> <%= form_with(url: sessions_new_path, scope: :session, local: true) do |f| %> <%= f.label :email, 'メール' %> <%= f.email_field :email %> <%= f.label :password, 'パスワード' %> <%= f.password_field :password %> <%= f.submit 'ログイン', class: 'btn' %> <% end %>
どこを間違えているのでしょうか?ご教授頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/31 01:42