2011-06-29 21 views
0

我的Rails3應用程序使用Devise進行身份驗證。Rails3:在設計登錄時,路由到數據庫中標識的文檔

只需點擊「登錄」按鈕,我希望每個用戶都被路由到給定的文檔(這個文檔的ID存儲在數據庫中,通常會改變)。

在Rails3中有處理這個問題的最佳做法嗎?

我看到兩個選項:

  1. 創建一個巨大的頁面,檢查數據庫,並相應地呈現適當的文檔。

  2. app/controllers/application_controller.rb中,檢查數據庫並相應地路由到正確的文檔。

哪個最好?任何更聰明的想法?

回答

0

你可以重寫你的登錄控制器(或應用程序控制器)的after_sign_in_path_for鉤是這樣的:

def after_sign_in_path_for(resource_or_scope) 
    if resource_or_scope.is_a?(User) 
    #Whatever url you need to here 
    else 
    super 
    end 
end 

而且應該做的伎倆。

+0

我只是將這段代碼放在我的'app/controllers/application_controller.rb'中,並用*「http://0.0.0.0:3000/monkeys/2/edit?locale=ja」取代了*任何url * *不幸的是,即使在重新啓動rails服務器之後,用戶仍然被指向* http://0.0.0.0:3000/* –

+0

這很奇怪,因爲這是我所做的工作。你能確認你的代碼實際上是否已經到達了url線嗎? – Olives

+0

這種方法確實沒有達到!我在'after_sign_in_path_for'方法的開頭添加了一條調試行,並且它永遠不會被打印。我在'class ApplicationController'裏面添加了你的方法,是不是正確的地方? –