设计轨道 3 和遥控器 =>真的
我在使用 AJAX 登录设备时遇到问题。我正在使用 :remote =>; true
选项和 javascript 帮助器的 jQuery 版本 (https://github.com/rails/jquery-ujs)。 当用户输入正确的信息时,会话视图中的 create.js.erb 就会被渲染。这没问题,因为我可以在这个文件中使用 JS 重定向我的用户。但当发生错误时,例如用户输入错误信息,响应中只有闪现消息,并带有错误代码401 - Unauthorized
。因此,不会呈现任何视图或 create.js.erb 或其他内容。 但我想处理这个消息,通过将其显示在侧面,以便用户得到一些反馈,出了什么问题。
我还尝试使用 respond_to :js
实现自己的自定义控制器,并使用 Warden 身份验证的 :recall
方法。但这不起作用。
有人知道解决这个问题的一些最佳实践吗?或者我应该避免使用这个辅助方法而只使用纯 jQuery 进行 ajax 调用?
谢谢, 无尾礼服
I have a problem using devise with an AJAX login. I'm using the :remote => true
option and the jQuery version of the javascript helpers (https://github.com/rails/jquery-ujs).
Ehen the user enters the correct informations, my create.js.erb inside the sessions view is rendered. This is ok, 'cause i can redirect my user using JS in this file. But when an error occurs, e.g. the user enters false information, only the flash messages are in the response with an error code 401 - Unauthorized
. So, no view or create.js.erb or sth else is rendered.
But I want to handle this message, by displaying it on the side, so that the users gets some feedback, whats wrong.
I also tried to implement my own custom controller with respond_to :js
, and playing with the :recall
method of the warden authentication. But it doesn't work.
Does anybody know some best practices to solve this problem? Or should I avoid this helper methods and just use pure jQuery for the ajax calls?
thx,
tux
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在 Rails 3 中使用 jQuery 事件“ajax:error”。只需将该事件绑定到您的表单即可。
查看这篇博客文章有关可用活动的更多详细信息。
You could use the jQuery event "ajax:error" in rails 3. Just bind the event to your form.
Take a look at this blog post for more details on what events are available.
这是我的版本,
它会自动将用户重定向到登录页面,并且适用于页面上的所有元素。
Here's my version
It automatically redirects the user to the login page and works for all elements on the page.