前提・実現したいこと
railsでメールアドレスを使わないログイン機能を実装したいのですができません。
発生している問題・エラーメッセージ
新規登録まではできるのですが、ログインする段階になって
「@が含まれていません」
というエラーメッセージが出てしまいます。
メールアドレスを使うログインを真似してコードを書いたので、それが原因かもしれません
該当のソースコード
user.rb
class User < ApplicationRecord validates :name , presence: true , length:{maximum: 10},uniqueness: true has_secure_password end
sessions_controller
class SessionsController < ApplicationController def new end def create name = params[:session][:name] password = params[:session][:password] if login(name, password) flash[:success] = 'ログインに成功しました。' redirect_to @user else flash.now[:danger] = 'ログインに失敗しました。' render 'new' end end def destroy session[:user_id]=nil flash[:success]="ログアウトしました" redirect_to root_urls end private def login(name , password) @user=User.find(params[:id]) if @user && @user.authenticate(password) session[:user_id] = @user.id return true else return false end end end
users_controller
class UsersController < ApplicationController before_action :require_user_logged_in , only:[:show] def new @user=User.new end def show @user=User.find(params[:id]) end def create @user=User.new(user_params) if @user.save flash[:success]="登録しました" redirect_to root_url else flash[:danger]="登録できませんでした" render :new end end private def user_params params.require(:user).permit(:name,:password, :password_confirmation) end end
補足情報(FW/ツールのバージョンなど)
rails 5.0.6
Cloud9を使っています
あなたの回答
tips
プレビュー