2011-10-13 7 views
8

Mam kontroler sesji, który dziedziczy opracować :: SessionsController:Droga do własnego działania w kontroler dziedziczy od opracować :: 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 

Jak widać powyżej jestem nadpisywania tworzyć i niszczyć działania i mam dodano kolejną akcję o nazwie get_token. Dodałem trasy dla niej, jak pokazano poniżej:

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' 

ale otrzymuję następujący errror gdy próbuję uzyskać dostęp do metody get_token;

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

Jak dodać trasę dla akcji get_token.

Dzięki z góry

Odpowiedz

19

Trzeba zakresu trasę w opracować tak:

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

To powinno pozwolić zadzwonić http://your-url/get_token aby uzyskać dostęp do działania.

+0

To działało. Dzięki. – Abhimanyu

+0

Cieszę się, że mogę pomóc. – janders223

+0

Otrzymuję błąd rutowania: niezainicjowany stały SessionsController dla powyżej. Dowolny pomysł ? –

Powiązane problemy