我正在使用带有 Rails 的 API 使用 Devise 进行用户身份验证。
因为我想使用自定义路线,所以我更改了 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#destroy 处理为 JSON [设计] 找不到路径“/sessions”的设计映射。这可能有两个原因:
1)您忘记将您的路线包装在范围块内。2) 您正在测试绕过路由器的设计控制器。
完成 404 Not Found in 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
其他路线运行良好(登录 => POST /sessions,注册 => POST /users)。
有人知道为什么会抛出 404 吗?
谢谢