2011-02-13 51 views
1

我最近轉向設計我的認證程序。但是,我仍然有一些問題,主要是路由。用戶登錄後,我有路線:設計搞亂我的路線

devise_for :users 

    namespace :user do 
    root :to => "town#index" 
    end 

我登錄後,我重定向到鎮控制器。在那裏,我有這樣一行:

<%= link_to raw("<p class='menu_head'>#{t('menu.inventory')}</p>"), :controller => "character" %> 

這實際上與寧靜的認證工作良好,但是對於設計出應對工作,我必須指定控制器「/字符」,否則我得到一個:

No route matches {:controller=>"user/character"} 

雖然這條路線不正確。這怎麼解決?

此外,我認爲這一個是由設計再次造成的。當新用戶註冊時,設計將它們重定向到城鎮#索引,因爲如果它們已經登錄就會發生這種情況。發生這種情況時,出於某種原因current_user未被初始化。這隻發生在註冊後,而不是在用戶登錄時發生。我很確定我在設計上做錯了什麼。

回答

0

您應該使用路由幫助程序而不是選項來訪問此控制器。在你的路線文件中定義一個路徑助手並使用它。這樣,您將始終獲得正確的URL。

目前,您的應用程序正在將您發送至users/town,因爲這就是您要告訴它的內容。登錄的網址是/users/sign_in,並通過:controller,你說「去/users/town。如果你使用的是命名路線,這不會發生。

+0

我真的不想使用命名路由。問題,這可能來自我的配置錯誤配置,我的登錄過程開始於家庭控制器,並且成功登錄後,用戶被重定向到城鎮控制器,否則他會停留在那裏似乎設備控制器正在搞亂我的控制器,我有點努力尋找出路:/ – Spyros 2011-02-13 09:06:15