【发布时间】:2012-08-07 00:35:34
【问题描述】:
我有一个 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
【问题讨论】:
标签: ruby-on-rails conditional-statements