我正在使用Devise进行用户身份验证的带有rails的API。
由于我想使用自定义路线,我改变了muy routes.rb,如下所示:
devise_scope :users do
post "/sessions", :to => "sessions#create"
delete "/sessions", :to => "sessions#destroy"
post "/user", :to => "users#create"
end
当我要注销用户(DELETE / sessions)
时,我遇到以下错误def self.logout token
response = RestClient.delete "http://localhost:3000/sessions/", {'ACCEPT' => "application/json", 'user_token' => token }
puts response.to_s
end
在2013-11-03 14:26:37 -0300开始为127.0.0.1删除“/ sessions /” 由SessionsController处理#untroy作为JSON [Devise]不能 找到路径“/ sessions”的设计映射。这可能发生在两个人身上 原因:
1)您忘记将路线包裹在范围块内。 2)你是 测试绕过路由器的Devise控制器。
完成404未在16ms内找到
这是我的SessionsController
class SessionsController < Devise::SessionsController
before_filter :authenticate_user!, :except => [:destroy]
respond_to :json
def destroy
user_token = params[:user_token].presence
user = user_token && User.find_by_authentication_token(user_token)
#if user.nil?
# render :json=> {:success=>false}
#end
resource.authentication_token = nil
resource.save
render :json=> {:success=>true}
end
end
其他路由工作正常(login =&gt; POST / sessions,signup =&gt; POST / users)。
有人知道为什么要扔404?
由于