2014-10-01 3 views
0

my_devsie/sessions_controller.rbRails перенаправление пользовательских действий в DEViSE подклассы сессий контроллер

class MyDevise::SessionsController < Devise::SessionsController 
    def dash_board 
    end 
end 

application_controller.rb

class ApplicationController < ActionController::Base 
    protect_from_forgery with: :exception 

    def after_sign_in_path_for(resource) 
     sign_in_url = url_for(:action => 'dash_board', :controller => '/my_devise/sessions',  :only_path => false, :protocol => 'http') 
     if request.referer == sign_in_url 
      super 
     else 
      stored_location_for(resource) || request.referer || root_path 
     end 
    end 
end 

routes.rb

devise_for :users, controllers: { registrations: "my_devise/registrations", 
           sessions: "my_devise/sessions" } 

приложение структура

app 
---controller 
------my_devise 
---------sessoins_controller.rb 

и ошибка

ActionController::UrlGenerationError at /users/sign_in 
No route matches {:action=>"dash_board", :controller=>"my_devise/sessions"} 

Я хотел бы перенаправить на «dash_board» метод в my_devise/session_controller для отображения соответствующего вид приборной панели после преуспевающим входа в систему, зарегистрироваться и профиль обновления

ответ

1

Трассы не найдено для действия dash_board. Вы должны добавить маршрут для этого. Попробуйте ниже, если это сработает.

devise_scope :user do 
    get "my_dashboard" =>"my_devise/sessions#dash_board" 
end 
+0

yah! это сработало, благодаря большому Saurabh. – codemilan