devise使用ajax登录
devise默认已经有较好的ajax支持了,只需要简单的配置一下即可使用ajax登录/注册。
1.修改config/application.rb加下以下配置,启用json输出。
1 | # devise respond_to json |
2.修改form标签,添加data-remote, data-type,设置id
1 | <%= form_for(resource, :as => resource_name, :url => session_path(resource_name), :remote => true, |
3.设置ajax头
1 | $.ajaxSetup({ |
4.js处理代码
1 | $('#ajax_user_signin').on('ajax:complete', function(e, xhr, type){ |
关于注册:
注册的方法和登录基本相同,给form_for添加data-remote、data-type和id等属性。需要注意的是注册返回的表单验证是多项错误,使用xhr.resonseJSON.errors获取错误集合。