1

我正在使用带有 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 吗?

谢谢

4

0 回答 0