我有一个 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