我想知道是否有可能选择性地要求使用Devise确认某些控制器操作。
基本上:我希望用户注册一个帐户(会触发确认电子邮件),自动登录,能够立即浏览网站的某些部分(但仍然未经证实) )用户。访问某些区域(例如付款)需要用户首先确认其电子邮件。
我希望有before_filter: user_is_confirmed, only: [payment_related_stuff]
我搜索了一段时间,却找不到开箱即用的方法,所以我想创建一个hacky解决方案,其中所有可能受保护的区域仍然需要before_filter: authenticate!
,但我会覆盖设计SessionsController的创建允许在确认之前允许访问某些区域。但是,我不确定这是否是正确的方法。
答案 0 :(得分:3)
在设计中使用内置解决方案,您可以在前置过滤器中将allow_unconfirmed_access_for 1.year
与current_user.confirmed?
结合使用