我需要在Devise将用户重定向到登录页面之前触发回调,可能是因为authenticate_user!
方法检测到他没有登录。例如:
before_filter :authenticate_user!, :only => :edit
def not_authenticated_callback
# do something
end
如果未调用authenticate_user!
,则不应调用它。
答案 0 :(得分:0)
我找到了一个丑陋的解决方案:
around_filter :intersect_warden
def intersect_warden
success = false
result = catch(:warden) do
result = yield
success = true
result
end
unless success
not_authenticated_callback
throw(:warden, result)
end
end
答案 1 :(得分:-1)
使用 before_filter:authenticate_user!时,如果用户未登录,操作将不会进入您的控制器。
如果你使用before_filter, 当用户未登录时,您无法访问控制器内的任何功能。