Rails设计“您需要在继续之前登录或注册”

时间:2014-05-06 03:10:24

标签: ruby-on-rails login devise

大家。

我在Rails 4中使用Devise进行身份验证,并且在Devise中遇到了一些麻烦。当我输入链接:http://yourdomain.com:3000/users/edit.535db919486f611779000000时,它只会呈现文字"您需要在继续之前登录或注册。"没有渲染布局,而不是重定向到登录页面(见附件)

我猜Rails在"编辑之后理解数字。"是格式,它不知道如何渲染它。

我想要的是当用户输入任何未登录的链接时,它将重定向到登录页面。有谁可以帮助我?

Layout for devise::registration#edit not render

通过此链接,它会抛出一个未知的格式异常。

Wrong format

1 个答案:

答案 0 :(得分:2)

您的问题与.之后传递值有关 - EG edit.234234324login.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

即可