Ruby好き非エンジニアのブログ

〜Ruby on Railsの学習記録〜

ユーザー登録時にログイン

前回解決できなかったユーザー登録時にheaderが切り替わらないという話。

・ログイン時はheaderが切り替わる
・ユーザー登録時はheaderが切り替わらない
というものでした。

前回の解決策として、ユーザーページを新たに作成し、そこにredirectするという方法にしましたが、
Ruby on Railsチュートリアルを見たら簡単に解決したのでメモ(汗
第8章 ログイン、ログアウト | Rails チュートリアル


まずは
app/helpers/sessions_helper.rbに下記を追加。

def log_in(user)
  session[:user_id] = user.id
end

そして、
チュートリアル通り、SessionsControllerとUsersControllerのcreateメソッドに

SessionsController

log_in user

UsersController

log_in @user

をそれぞれを追加

こんな感じになります。
SessionsController

def create
  user = login(params[:login], params[:password], params[:remember_me])
  if user
    log_in user #ここを追加
    flash[:info] = "ログインしました"
    redirect_back_or_to user
  else
    flash[:danger] = 'ニックネーム・メールアドレス もしくはパスワードが間違っています'
    render :new
  end
end

UsersController

def create 
  @user = User.new(user_params)
  if @user.save
    log_in @user #ここを追加
    flash[:success] = "Welcome to the Jammies!"
    redirect_to @user
  else
    render 'new'
  end
end

以上です。笑
とりあえず、今のところエラー無く無事動作しています。

細かいところですが、モヤモヤしていたので解決できて良かった。
ということで今回はここまで!