class SessionsController < ApplicationController def new end def create user = User.find_by(email: params[:session][:email].downcase) if user && user.authenticate(params[:session][:password]) session[:user_id] = user.id redirect_to user_path(user.id) else flash[:danger] = 'ログインに失敗しました' render :new end end end
class UsersController < ApplicationController def create @user = User.new(user_params) if @user.save redirect_to user_path(@user.id) else render :new end end
rails初学者です。只今、railsでログイン機能を作成しておりますが分からないことがあるので質問させてください。
上記一つめのコードは成功した場合user/showにリダイレクトする仕様なのですがリダイレクトする際の
redirect_to user_path(user.id) このuser.idが何故@がつかないか理解出来ておりません。
また、2つ目のコードはユーザー認証時のコードですがリダイレクトの際は @user.idになっています。
私の理解では、 値を保持しなくてはいけない時は@を使用する認識です。
何かわかりやすい解釈があったら教えていただけますでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。