检查模型是否可确认

时间:2014-12-25 10:19:15

标签: ruby-on-rails devise

我对Rails有点新意,所以如果我这样做完全错了,请告诉我:)

我在我的rails应用程序中有两个使用devise构建的模型,一个是可确认的,另一个不是。

我想在用户主页或分隔页面上设置after_sign_up_path_for(resource),表示已发送确认电子邮件,具体取决于我的资源是否必须确认其注册。

  • 我可以检查数据模型中是否存在确认字段,但有更简洁的方法,例如resource.confirmable?

  • 是否有更简洁的方式而不是覆盖after_sign_up_path重定向到不同的页面,具体取决于模型是否可以确认?

由于

1 个答案:

答案 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}}