大家。
我在Rails 4中使用Devise进行身份验证,并且在Devise中遇到了一些麻烦。当我输入链接:http://yourdomain.com:3000/users/edit.535db919486f611779000000时,它只会呈现文字"您需要在继续之前登录或注册。"没有渲染布局,而不是重定向到登录页面(见附件)
我猜Rails在"编辑之后理解数字。"是格式,它不知道如何渲染它。
我想要的是当用户输入任何未登录的链接时,它将重定向到登录页面。有谁可以帮助我?
通过此链接,它会抛出一个未知的格式异常。
答案 0 :(得分:2)
您的问题与.
之后传递值有关 - EG edit.234234324
或login.23424234
正如您从屏幕截图中看到的那样,您收到错误是因为Rails将该号码视为format
(与处理.html
,.js
或.json
作为格式)
我不知道为什么它适用于edit
,但看起来它正在向我呈现json
,可能是因为它与您发送的格式类型相混淆
解决此问题的方法是获取config/routes.rb
& URLs
已修复
您尚未详细说明如何向网址助手发送numbered
请求,但如果您要求纯网址,则需要从最后删除该数字 :
localhost:3000/users/login
localhost:3000/users/edit
这些是应加载的网址(没有数字)
我想你会收到错误,因为你正在调用这样的设计url helpers
:
<%= link_to "login", user_new_session_path(some_value) %>
您只需使用user_new_session_path