2012-12-28 32 views
5

我有一個軌3.2應用程式設計2.1獨特after_sign_out路徑和軌道

我有使用設計(ADMINUSER和用戶)

模型2種機型:

class AdminUser < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 
end 

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 
end 

我通過設計生成器爲兩個模型生成了單獨的視圖。 的意見/設計文件夾ADMINUSER(前新的要求更早實現月) 的意見/ Users文件夾的用戶模型

signout後,我想重定向到匹配色器件模型的具體行動。下面的代碼在application_controller.rb,但它正在申請,我想沒有做這兩種模式:

def after_sign_out_path_for(user) 
    user_landing_path 
end 

登出後,任一型號重定向到同一個目標網頁,但我想有一個獨特的目標爲兩個設計模型。

我該如何做到這一點?

回答

0

有些事情可以做:

case user.class 
when AdminUser.class 
    do_admin_sign_out() 
when User.class 
    do_user_sign_out() 
else 
    no_idea_who_you_are() 
end 

if user.kind_of? AdminUser 
    do_admin_thing() 
else 
    do_user_thing() 
end 

或者,你可以添加一個admin?檢查,這兩種模式,並檢查,即:

if user.admin? 
    do_admin_thing() 
... 

我可能會做更晚的事,因爲這可能會出現在其他地方,但這些都是你的選擇。

+0

會在哪裏這些代碼有一項signout序列的範圍內去尋找後的解決方案?我可以看到這些檢查是在特定的基礎上進行的,但不確定它在這種情況下適用於我在Devise引擎中使用控制器的情況 – koa