【发布时间】:2018-06-13 06:21:01
【问题描述】:
有人可以帮我吗?使用下面的条件语句,只满足第一个和第二个条件,第三个(第二个 elsif 语句)和最后一个条件永远不会满足。我尝试过移动用例语句,但得到了相同的结果。
def current_user
if Stylist.exists?(session[:user_id]) && Stylist.find(session[:user_id]).has_role?(:def_stylist)
@current_user = Stylist.find(session[:user_id])
elsif Client.exists?(session[:user_id]) && Client.find(session[:user_id]).has_role?(:def_client)
@current_user = Client.find(session[:user_id])
elsif Admin.exists?(session[:user_id]) && Admin.find(session[:user_id]).has_role?(:def_admin)
@current_user = Admin.find(session[:user_id])
else
@current_user = nil
end
end
【问题讨论】:
-
您确定在数据库中设置了
Admin角色:def_admin用户吗? -
是的。当管理员用户注册时,他们将获得角色。我还使用 has_role 在控制台上进行了检查? :def_admin.
-
是的。当管理员用户注册时,他们将获得角色。我还使用 has_role 在控制台上进行了检查? :def_admin.
-
为什么你的角色名称有
def_前缀?
标签: ruby if-statement ruby-on-rails-4 conditional