Tra*_*tto 6 ruby-on-rails devise ruby-on-rails-3
当我尝试退出设计错误时,我收到以下错误:
没有路线匹配[GET]"/ d/users/sign_out"
我的标签是正确的,如下:
<%= link_to "Sign Out", destroy_session_path, :method=>:delete %>
Run Code Online (Sandbox Code Playgroud)
我的设计路线是:
devise_for :users, :path_prefix=>"d", :controllers=>{:sessions=>"sessions"}
Run Code Online (Sandbox Code Playgroud)
其他路线是:
resources :users#For CRUD defined after devise_for like in Devise Wiki
Run Code Online (Sandbox Code Playgroud)
使用自定义控制器会话进行ajax登录,例如在Devise wiki页面上:
class SessionsController < Devise::SessionsController
def create
respond_to do |format|
format.html{ super }
format.json do
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#failure")
#resource = warden.authenticate!(:scope => resource_name, :recall => :failure)
return sign_in_and_redirect(resource_name, resource)
end
end
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 => stored_location_for(scope) || after_sign_in_path_for(resource)}
end
def failure
return render:json => {:success => false, :errors => ["Login failed."]}
end
end
Run Code Online (Sandbox Code Playgroud)
设计初始化程序具有:
config.sign_out_via = :delete
Run Code Online (Sandbox Code Playgroud)
关于什么可能导致问题的任何想法?我搜索了谷歌,但仍然感到难过.
以下是设计用户的rails路径文件的屏幕截图.抱歉,它很小,但你可以右键单击然后自己查看它以获得更大的屏幕.

包含jquery_ujs文件.
它在控制台中显示删除确实正在传递,但是它从sessions_controller跳转到/然后转到d/users/sign_out ...不确定如何解决这个问题.
重定向时,首先将d/users/sign_out作为DELETE传递给它.然后重定向到root_url然后给出错误ERROR Errno::ECONNABORTED: An established connection was aborted by the software in your host machine. 它然后尝试重定向到d/users/sign_out作为GET它失败的地方.
| 归档时间: |
|
| 查看次数: |
738 次 |
| 最近记录: |