您如何处理这一点?
在应用程序中,我想将所有路线放入
authenticated
块内,例如:
devise_scope :user do
unauthenticated do
root 'sessions#new'
end
authenticated do
... routes here
end
end
共振:
not logged in
案例,我不必为每条路线编写额外的测试。在控制器/请求规格上,一切正常。因为你在测试开始时
log_in
(设计助手)。
问题
在视图规格上,这会为每个
No route matches
抛出 link_to
,因为在视图规格上,您无法使用 Devise log_in
帮助器。你必须嘲笑 authenticated
块。
从我的角度来看,我想使用
authenticated
块,但似乎这在实践中是不可能的。
您如何解决这一点?
如何模拟经过验证的区块?
找到我的答案
Devise
authenticated
块在实践中没有用,因为:
当未经身份验证的用户想要访问应用程序的特定页面时,您通常希望缓存请求url,将其重定向到登录页面,并在登录成功后将其重定向到原始url。
但是如果未经身份验证的路由不存在,则这是不可能的。