使用rails 3和remote => true进行设计

我在使用AJAX登录设计时遇到问题。 我正在使用:remote => true选项和javascript版本的javascript助手(https://github.com/rails/jquery-ujs)。 用户输入正确的信息后,会在会话视图中呈现我的create.js.erb。 这没关系,因为我可以在这个文件中使用JS重定向我的用户。 但是当发生错误时,例如用户输入错误信息时,只有闪存消息在响应中,错误代码为401 - Unauthorized 。 因此,不会呈现视图或create.js.erb或其他。 但我想通过在侧面显示它来处理这个消息,以便用户获得一些反馈,但是错误。

我还尝试使用respond_to :js实现我自己的自定义控制器,并使用warden身份validation的:recall方法。 但它不起作用。

有人知道解决这个问题的一些最佳实践吗? 或者我应该避免使用这种辅助方法,只使用纯jQuery进行ajax调用?

thx,tux

你可以在rails 3中使用jQuery事件“ajax:error”。只需将事件绑定到表单即可。

 jQuery(function($) { $("#new_model").bind("ajax:error", function(event, data, status, xhr) { alert("something went wrong"); }); }); 

请查看此博客文章 ,了解有关可用事件的更多详细信息。

这是我的版本

  

它会自动将用户重定向到登录页面,并适用于页面上的所有元素。