'authenticate_user!','user_signed_in?'和& 'if current_user'?

时间:2013-08-06 17:33:46

标签: ruby-on-rails devise

这可能是一个愚蠢的问题,但我正在使用Devise& amp;我只是想知道,authenticate_user!user_signed_in?和&之间是否有任何显着差异? if current_user?如果是这样,那么在什么情况下我不会使用其中一个?

由于

2 个答案:

答案 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

这将获取登录应用程序的用户。