我正在使用Devise进行身份验证,当有人访问特定的URL(URL中有特定的params)时,我想将“current_user”设置为db中的特定值。
我该怎么做?
另外,我是否必须确保满足所有验证要求?例如,我的用户模型有:
validates_presence_of :username, :email
如果我设置了current_user,我是否必须同时设置:username& :电子邮件,还是我可以做其中一个?
答案 0 :(得分:22)
你可以尝试
@user = User.where(:x => "y").first # Find the user depending on the params
sign_in(@user)
# do work
sign_out(@user)
我不知道这是否是最好的方法,但它会设置current_user
。
答案 1 :(得分:5)
devise的current_user
帮助器设置实例变量@current_user,所以这样做:
@current_user = User.first
还会将current_user设置为所选用户。