Я пытаюсь сделать работу Devise только на AJAX
со всеми запросами/ответами, используя JSON
.Rails - Can Ajaxify Devise
Вот мой код до сих пор:
Я начал с Devise::RegistrationsController
:
class Users::RegistrationsController < Devise::RegistrationsController
respond_to :json
end
И моя соответствующая точка зрения:
<div class="row">
<div class="col-lg-4"></div>
<div class="col-lg-4">
<h1>Sign up</h1>
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), remote: true, format: :json, html: {id: "registration"}) do |f| %>
<%= devise_error_messages! %>
<div class="form-group">
<%= f.label :email %>
<%= f.email_field :email, autofocus: true, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :password %>
<% if @validatable %>
(<%= @minimum_password_length %> characters minimum)
<% end %>
<%= f.password_field :password, autocomplete: "off", class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, autocomplete: "off", class: "form-control" %>
</div>
<%= f.submit "Sign up", class: "btn btn-primary" %>
<% end %>
<%= render "users/shared/links" %>
</div>
<div class="col-lg-4"></div>
</div>
Запрос AJAX
выполнен успешно, но я продолжайте получать ответ как HTML
.
Вот запись журнала:
Started POST "/users" for ::1 at 2015-05-21 21:22:10 -0700
Processing by Users::RegistrationsController#create as JS
Parameters: {"utf8"=>"✓", "user"=>{"email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"}
(1.0ms) begin transaction
(0.3ms) rollback transaction
Rendered users/shared/_links.html.erb (2.2ms)
Rendered users/registrations/new.html.erb within layouts/application (20.0ms)
Completed 200 OK in 444ms (Views: 361.7ms | ActiveRecord: 1.2ms)
Что я делаю неправильно?
Это не работает для меня. Вы в этом уверены? Ты это пробовал? –
Хорошо, я пропустил один шаг. Попробуйте снова. – lcguida