2011-10-13 11 views
8

私が考案:: SessionsControllerから継承したセッションコントローラがあります:あなたは私がアクションを作成し、破壊し、上書きしていると私が持っている上で見ることができるようにルート:: SessionsController

class SessionsController < Devise::SessionsController 

    skip_before_filter :authenticate_user!, :only => [:get_token] 

    def create 
    .... 
    end 

def destroy 
    ... 
end 

def get_token 
    response.headers["app-key"] = form_authenticity_token() 
    render :text=>'Token Set' 
end 

end 

をget_tokenという別のアクションが追加されました。以下に示すように、私はそれのためにルートを追加しました:

routes.rbを

Application.routes.draw do 

    devise_for :users, :controllers => { :sessions => "sessions" }, :path => "users",  :path_names => { :sign_in => 'login', :sign_out => 'logout',:confirmation => 'verification'} 

    match 'get_token', :to => 'sessions#get_token' 

しかし、私は、私はget_tokenメソッドにアクセスしようとしています次errrorを取得していますが、

[Devise] Could not find devise mapping for path "/get_token". 

get_tokenアクションのルートを追加する方法。あなたがそのアクションにアクセスするためにhttp://your-url/get_tokenを呼び出すことができなければならない

devise_scope :user do 
    get 'get_token' => 'sessions#get_token' 
end 

:あなたはスコープにそのような工夫でルートを必要とし、事前

答えて

19

感謝。

+0

これは機能しました。ありがとう。 – Abhimanyu

+0

うれしい私は助けることができました。 – janders223

+0

私は上記のためにルーティングエラー:初期化されていない定数SessionsControllerを取得しています。何か案が ? –