即使用户未登录,如何设置'current_user'? - Rails 3

时间:2011-05-07 22:34:19

标签: ruby-on-rails-3 devise

我正在使用Devise进行身份验证,当有人访问特定的URL(URL中有特定的params)时,我想将“current_user”设置为db中的特定值。

我该怎么做?

另外,我是否必须确保满足所有验证要求?例如,我的用户模型有:

validates_presence_of :username, :email

如果我设置了current_user,我是否必须同时设置:username& :电子邮件,还是我可以做其中一个?

2 个答案:

答案 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设置为所选用户。