任何人都知道在每个请求中(验证或验证)用户时如何取消设计Devise查询?
假设我有这个带范围的用户模型
class User < ActiveRecord::Base
default_scope where(group_id: 1)
end
在进行身份验证时,我已经完成了取消操作,覆盖了find_for_authentication
设计方法:
def self.find_for_authentication(conditions)
User.unscoped { super }
end
但是当我转到任何具有:authenticate_user!
过滤器的页面时,设计会注销用户,因为它正在使用范围。我也尝试取消active_for_authentication?
方法,但它没有用。
有人知道Devise从每个请求中将当前用户从当前用户获取到由:authenticate_user!
过滤的页面吗?
我正在使用Rails 3.2.1和Devise 2.0。
答案 0 :(得分:1)
您可以覆盖current_user
文件中的application_controller.rb
方法:
def current_user
User.unscoped { super }
end
答案 1 :(得分:0)
另一种方式:
class User < ActiveRecord::Base
def self.serialize_from_session(key, salt)
self.unscoped { super }
end
end