2013-07-30 49 views
5

對不起愚蠢的問題,但設計中的範圍究竟是什麼?我遇到的問題是我想將sign_out方法添加到我的控制器,而我無法這樣做,因爲config.sign_out_all_scopes默認設置爲true,所以將其更改爲false會有所幫助,但我不明白這是什麼配置實際上是。它看起來像是真的,它會註銷所有:管理員或所有:用戶通過註銷一個,但它對我沒有意義。 「範圍」實際上是一個用戶嗎?如果我切換此選項,究竟會發生什麼變化? 非常感謝。設計中的範圍是什麼?

回答

4

Devise允許您將用戶分成不同的「範圍」,如「admin」和「member」,其效果是您可以爲每個範圍獲取一組路線,控制器和視圖。

用戶可以屬於多個作用域並隨時登錄其中的任何/全部,因此當選項sign_out_all_scopes爲true時,退出作爲任何作用域將簽出當前在作用域中籤名的所有用戶。

關於您的具體問題 - 您爲什麼要定義自己的退出方法? Devise爲你提供一個。如果您想修改註銷方法,請確保按照the instructions正確擴展設計控制器。

+0

我想要做的是添加一些東西來爲我的控制器中的函數添加一個sign_out方法,該方法將在重定向之前註銷一個人,但使用默認值 sign_out:user#sign_out(scope) sign_out @user #sign_out(resource) 以「錯誤的參數數量」結束 –