RoR - 使用Devise gem的路线问题

时间:2013-11-03 17:33:41

标签: ruby-on-rails authentication devise routes

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

由于

0 个答案:

没有答案