2011-10-13 10 views
8

Ho un regolatore di sessione che eredita da Devise :: SessionsController:Percorso per l'azione personalizzata nel controllo che eredita da Devise :: 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 

Come potete vedere sopra sto sovrascrivere creare e distruggere l'azione e ho aggiunta un'altra azione chiamata get_token. Ho aggiunto percorsi per come illustrato di seguito:

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' 

Ma sto ottenendo il seguente errror quando sto cercando di accedere metodo get_token;

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

Come aggiungere route per l'azione get_token.

Grazie in anticipo

risposta

19

È necessario ambito il percorso in Devise in questo modo:

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

che dovrebbe consentire di chiamare http://your-url/get_token di accedere a tale azione.

+0

Questo ha funzionato. Grazie. – Abhimanyu

+0

Contento di aver potuto aiutare. – janders223

+0

Errore di routing: costante SessionsController non inizializzato per sopra. Qualche idea ? –

Problemi correlati