2013-07-28 55 views
3

我一直在檢查SO和Google的解決方案,但我無法弄清楚我做錯了什麼。我正在嘗試使用Devise的after_sign_in_path_for幫手。我看過這個幫手的文檔hereRuby on Rails - 設計錯誤:未定義的局部變量或方法

但我在提交的登錄憑據收到以下錯誤:

NameError (undefined local variable or method `dashboard_url' for # 
<Devise::SessionsController:0x007fcc36079d88>): 
app/controllers/application_controller.rb:27:in `after_sign_in_path_for' 

這裏就是我的工作:

的config/routes.rb中

My::Application.routes.draw do 
    get "login/index" 
    devise_for :users, path_names: {sign_in: "login"} do 
    get '/users/sign_out' => 'devise/sessions#destroy' 
    end 
get "dashboard/index" 
root :to => "login#index" 
get 'dashboard' => 'dashboard#index', as: :dashboard_url 
get ':controller(/:action(/:id(.:format)))' 
end 

的路徑顯示在rake routes如下:

rake routes

dashboard_url GET /dashboard(.:format)     dashboard#index 

任何幫助將不勝感激!謝謝。

回答

4

修復它在你的路由

get 'dashboard' => 'dashboard#index', as: :dashboard

耙路線顯示你的路由助手不追加_path_url後綴。

+0

感謝Nick。我是RoR的新手,仍然沒有捕捉到路線的概念。 – Dodinas

2

ApplicationController.rb

def after_sign_in_path_for(resource) 
    users_dashboard_path 
end 

的routes.rb

namespace :users do 
    get 'dashboard' => 'dashboard#index', as: :dashboard 
end 

注:我已經創建了我的儀表盤控制器內部的用戶文件夾中創建設計。 (像這樣=>'users/dashboard_controller.rb') 希望這個工作示例能幫助你

相關問題