前提・実現したいこと
Ruby on railsで「devise」を使いログイン機能を実装したいです。
発生している問題
ログインフォームでsubmitボタンを押すとエラーメッセージが発生する。
エラーメッセージ
NoMethodError in Users::SessionsController#create undefined method `authenticate!' for nil:NilClass
該当のソースコード
ログインフォームのView
app/views/users/sessions/new.html.erb
<p>ログイン用ページ</p> <p>ログインしていないと使用できない機能もあります。</p> <%= form_for :session,:url => {controller: "sessions", action: "create" } do |f| %> <p>ユーザーIDを記入</p> <%= f.text_field :user_id %> <p>パスワードを記入</p> <%= f.password_field :password %> <%= f.submit "ログイン!" %> <% end %>
ログインフォームのコントローラー
app/controllers/users/sessions_controller.rb
class Users::SessionsController < Devise::SessionsController before_action :tintin, only: [:create] def new end def create # 多分@userがnillになっている if @user.authenticate!(password: params[:password]) session[:user_id] = user.user_id flash[:notice] = "ログイン成功" redirect_to("/") else flash[:alert] = "ログイン失敗だよ" render action: :new end end def session_params params.permit(:user_id, :password) end def tintin @user = User.find_by(user_id: params[:user_id]) end end
補足情報
Windows 10 home 64ビット
ruby 2.6.6
Ruby on rails 6.0.3.1
PostgreSQL 13beta1
テキストエディタ Atom
失礼な点があるかもしれませんがどうぞ宜しくおねがい致します。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/29 02:33