我对Rails有点新意,所以如果我这样做完全错了,请告诉我:)
我在我的rails应用程序中有两个使用devise构建的模型,一个是可确认的,另一个不是。
我想在用户主页或分隔页面上设置after_sign_up_path_for(resource)
,表示已发送确认电子邮件,具体取决于我的资源是否必须确认其注册。
我可以检查数据模型中是否存在确认字段,但有更简洁的方法,例如resource.confirmable?
是否有更简洁的方式而不是覆盖after_sign_up_path
重定向到不同的页面,具体取决于模型是否可以确认?
由于
答案 0 :(得分:5)
您可以执行以下操作:
resource.class.devise_modules.include?(:confirmable)
或
resource.respond_to?(:confirmed?)
关于检查用户是否已经确认,您可以使用以下内容:
def after_sign_up_path_for(resource)
if resource.class.devise_modules.include?(:confirmable)
if resource.active_for_authentication?
"path for confirmed user"
else
"path for waiting for confirmation"
end
else
"path for non confirmable model"
end
end
查看文档:{{3}}