努力获得会话删除路由以使用Rails API

时间:2015-11-03 18:20:27

标签: ruby-on-rails devise

我正在创建一个应用程序,该应用程序还将使第三方站点能够对其用户数据库进行身份验证。我正在使用Devise并以下列方式为我的路由添加了一个API命名空间(随着我进一步改进,因为我将向API添加更多路由):

  devise_scope :user do
    resources :users
    put 'change_plan', :to => 'users#change_plan'
    namespace :api, constraints: { format: :json } do
      resources :sessions, :only => [:create, :destroy]
    end  
  end   

我为我的会话覆盖了Devise控制器,并对销毁操作进行了以下操作:

def destroy
  resource = User.find_by_authentication_token(params[:auth_token]||request.headers["X-AUTH-TOKEN"])
  resource.authentication_token = nil
  resource.save
  sign_out(resource_name)
  render :json => {:message => "User signed-out"}.to_json, :status => :ok
end

使用Postman测试API时,我可以获得创建路径(以及应用程序中响应JSON的所有其他路径)以完美地工作并返回正确的结果。但是,无论我尝试什么,我都无法让DELETE路由工作。我已经完成了大约十个教程,并尝试了基于它们的替代方案,所有这些都给了我以下错误的变体:没有路由匹配[删除]" /"

我也尝试过使用"匹配"等变体。这适用于创建会话和生成令牌但不适用于删除。我也尝试过Postman中没有运气的每个URL组合/变体。在这个阶段,我想知道Postman / Devise之类的错误,或者我是否错过了非常基本的东西(最有可能!?)。任何建议都将非常感谢。

更多信息 - 会议的佣金路线如下: api_sessions POST /api/sessions(.:format)api / sessions #create {:format =>:json}

api_session DELETE /api/sessions/:id(.:format)api / sessions #stroy {:format =>:json}

不确定它是否有用,但与用户(资源)的重写Devise控制器相关的路由如下:

用户GET /users(.:format)用户#index                          POST /users(.:format)用户#create                 new_user GET /users/new(.:format)用户#new                edit_user GET /users/:id/edit(.:format)用户#edit                     用户GET /users/:id(.:format)用户#show                          PATCH /users/:id(.:format)用户#update                          PUT /users/:id(.:format)用户#update                          删除/users/:id(.:format)用户#stroy

0 个答案:

没有答案