我正在尝试将我的设计注册设置为ajax调用,以便我可以在用户注册流程中获取错误。目前,我有它,以便能够成功创建用户,但我无法获得JSON格式的错误,无法正确使用来为用户进行验证。
这就是我现在所拥有的:
形式
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), format: :json, remote: true) do |f| %>
<%= devise_error_messages! %>
<%= f.hidden_field :card_id %>
<div><%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %></div>
<div><%= f.label :password %> <% if @validatable %><i>(<%= @minimum_password_length %> characters minimum)</i><% end %><br />
<%= f.password_field :password, autocomplete: "off" %></div>
<div><%= f.submit "Sign up" %></div>
<% end %>
JS
$('#new_user').on("ajax:success", function(data, status, xhr) {
console.log(data);
console.log(status);
console.log(xhr);
});
在这种情况下,状态响应HTML,这通常发生在标准设计添加
上答案 0 :(得分:0)
如果要返回JSON数据,则需要子类化Devise::RegistrationsController
并创建自己的控制器操作。只需像普通的创建操作一样构建它。如果要将数据返回给客户端,请使用render json
。 Devise's Wiki应该提供大量的帮助以及网络上还有很多其他资源。