这可能是一个愚蠢的问题,但我正在使用Devise& amp;我只是想知道,authenticate_user!
,user_signed_in?
和&之间是否有任何显着差异? if current_user
?如果是这样,那么在什么情况下我不会使用其中一个?
由于
答案 0 :(得分:2)
不确定“显着差异”是什么意思,所有这些都做了不同的事情:
authenticate_user! # Signs user in or redirect
user_signed_in? # Checks whether there is a user signed in or not
current_user # Current signed in user
来源:https://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.rb
答案 1 :(得分:2)
只要读取变量名称就可以看出它们不是同一个东西。
authenticate_user!
这是一种检查用户身份验证的方法,即检查登录名和密码是否匹配。
user_signed_in?
此方法检查用户是否已登录该应用程序。如果会话中有任何数据告诉应用程序用户已登录。
current_user
这将获取登录应用程序的用户。