0
Rails (4.1)에서 devise로 ajax 모달 로그인을 시도하고 있습니다. 나는 그것이 작동하도록 할 수 없습니다. 내 로그에 불구하고 200 번으로 리다이렉트했다는 메시지에도 불구하고 로그인하고 아무 일도 일어나지 않습니다. 그런 다음 새로 고침을하고 로그인했습니다. 로그인 후 리디렉션되지 않는 이유는 무엇입니까? 도와 주셔서 미리 감사드립니다. 여기 Rails Devise Ajax Modal
모달 부분입니다 : 여기<%= form_for(resource, as: resource_name, url: session_path(resource_name), :remote => true, :format => :json, class: 'sign-in') do |f| %>
<%= f.email_field :email, autofocus: true, placeholder: 'Email', class: "form-control center-block" %>
<%= f.password_field :password, placeholder: 'Password', autocomplete: "off", class: 'form-control center-block' %>
<%= f.submit 'log in', class: 'center-block btn btn-sp btn-lg'%>
<% end %>
가 SessionsController입니다 :
class SessionsController < Devise::SessionsController
def create
resource = warden.authenticate!(:scope => resource_name, :recall => "home#index")
return sign_in_and_redirect(resource_name, resource)
end
def sign_in_and_redirect(resource_or_scope, resource=nil)
scope = Devise::Mapping.find_scope!(resource_or_scope)
resource ||= resource_or_scope
sign_in(scope, resource) unless warden.user(scope) == resource
return render :json => {:success => true, :redirect => after_sign_in_path_for(resource)}
end
def failure
return render :json => {:success => false, :errors => ["Login failed."]}
end
end
그리고 여기에 자바 스크립트입니다 : 여기
$('.sign-in').bind('ajax:success', function(e, data, status, xhr){
console.log(data);
if(data.success){
$('box').prepend('<p>signed in<p>')
} else{
console.log('didnt work')
$('box').prepend('<p>login failed</p>')
}
})
서버 로그입니다
Started GET "/admin/accounts" for 127.0.0.1 at 2015-01-29 11:01:19 -0800
Processing by Admin::AccountsController#index as JS
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = 6 ORDER BY "users"."id" ASC LIMIT 1
Account Load (0.2ms) SELECT "accounts".* FROM "accounts" WHERE "accounts"."id" = $1 LIMIT 1 [["id", 1]]
Account Load (0.7ms) SELECT "accounts".* FROM "accounts" ORDER BY "accounts"."organization" ASC
Rendered admin/accounts/index.html.erb within layouts/suite (12.4ms)
Rendered layouts/application.html.erb (11.2ms)
Rendered layouts/privacy-terms.html.erb (0.1ms)
Completed 200 OK in 38ms (Views: 33.6ms | ActiveRecord: 1.2ms)
Devise 경로는 어떻게 생겼습니까? Devise sessions # create가 (는) 생성 작업으로 이동하고 있습니까? 해당 작업에'binding.pry'를 던져보십시오. – evanbikes
예 devise_for : users, : controllers => {등록 : '등록', 세션 : '세션', 비밀번호 : '비밀번호', 잠금 해제 : '잠금 해제'} – ChrisPalmer