簡體   English   中英

before_filter:除非&命名空間

[英]before_filter :unless & namespace

我正在嘗試執行以下操作:

before_filter :authenticate_user!, :unless => (:devise_controller? || self.class.parent == 'admin')

devise_controller? 有點奏效(我認為!),但是我正在努力使其正確地檢測名稱空間(我正在使用ActiveAdmin)。

有什么想法嗎?

非常感謝!

我相信您必須在before_filter方法中使用proc。 試試這個

before_filter :authenticate_user!, :unless => Proc.new { devise_controller? || self.class.parent   == 'admin' }

對於一些代碼,proc或lambda就足夠了。 如果變得更加復雜,請提取方法my_conditions_method中的條件,然后調用:unless => :my_conditions_method

我沒有深入了解上述內容,但是通過這種方法找到了一種解決方案,該解決方案通過更清潔的實現實現了相同的結果:

ActiveAdmin與Devise Rails登錄兩次

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM