我正在尝试执行以下操作:
before_filter :authenticate_user!, :unless => (:devise_controller? || self.class.parent == 'admin')
devise_controller?有点工作(我想!)但我正在努力让它正确检测命名空间(我正在使用ActiveAdmin)。
有什么想法吗?
非常感谢!
答案 0 :(得分:0)
我相信你必须在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
答案 1 :(得分:0)
如上所述,我没有深究这一点,但通过这种方法找到了一个解决方案,通过更清晰的实现实现了相同的结果: