我需要在设计将用户重定向到登录页面之前触发回调,可能是因为authenticate_user!
方法检测到他没有登录。类似的东西:
before_filter :authenticate_user!, :only => :edit
def not_authenticated_callback
# do something
end
如果尚未调用,则不应调用它authenticate_user!
。
我需要在设计将用户重定向到登录页面之前触发回调,可能是因为authenticate_user!
方法检测到他没有登录。类似的东西:
before_filter :authenticate_user!, :only => :edit
def not_authenticated_callback
# do something
end
如果尚未调用,则不应调用它authenticate_user!
。
我找到了一个丑陋的解决方案:
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
在使用before_filter 时:authenticate_user!,如果用户未登录,该操作将不会进入您的控制器。
如果您使用 before_filter,当用户未登录时,您将无法访问控制器内的任何功能。