Rails アプリケーションがあり、アプリケーション コントローラーには次のコードがあります。
redirect_to :login unless @current_user = User.find_by_uid(session[:cas_user])
@current_user.syncUserRoles
したがって、これは、ユーザー アカウントが正常に見つからない限り、ログインするようにリダイレクトすることになっています。ただし、@current_user が nil を返しても、次の行に進んでいました。そのため、コードを次のように変更しました。
@current_user = User.find_by_uid(session[:cas_user])
redirect_to :login unless @current_user.present?
@current_user.syncUserRoles
ただし、2 行目でないとインラインを無視し、3 行目で nilClass エラーが発生してエラーが発生します。最終的に本格的な if else ステートメントに頼らなければなりませんでしたが、何が間違っていたのか知りたいです。
if @current_user.present?
@current_user.syncUserRoles
else
redirect_to :login
end //This works as intended