2014-05-06 41 views
0

大家。Rails设计“你需要登录或注册继续之前”

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

我猜Rails理解“编辑”后的数字。是格式,它不知道如何渲染它。

我想要的是当用户在没有登录的情况下输入任何链接时,它将重定向到登录页面。任何人都可以帮我吗?

Layout for devise::registration#edit not render

有了这个环节,它抛出一个未知格式例外。

Wrong format

+1

你在application_controller中有什么,你做了一个'before_action:authenticate_user!' – derekyau

回答

2

你的问题是.后的值的传球做的事情 - EG edit.234234324login.23424234

你可以从你的截图中看到,您收到由于Rails是处理错误作为format.js以同样的方式,将治疗.html,或.json作为格式)号

我不知道为什么它的工作原理为edit,但它看起来像它的渲染json对我来说,可能是因为它与你发送


格式的类型来解决这个问题是让你的config/routes.rb & URLs固定

你的方式混淆“已经不再详述你是如何发送numbered请求您的网址帮手,但如果你申请纯网址,你需要从最终删除号码:

localhost:3000/users/login 
localhost:3000/users/edit 

这些都是应该加载(无数字)

我会想象,因为我们在调用色器件url helpers这样你得到错误的URL:

<%= link_to "login", user_new_session_path(some_value) %> 

你只需要使用user_new_session_path