设计:用户确认后显示错误

时间:2013-07-09 15:58:41

标签: ruby-on-rails devise devise-confirmable

我想在确认的用户尝试重新发送确认时显示错误消息。这是设计已经提供的东西还是我必须覆盖他们的一些方法?如果是这样的话?

2 个答案:

答案 0 :(得分:1)

我通过覆盖令人困惑的控制器

的创建动作来实现这一点
def create
    self.resource = resource_class.send_confirmation_instructions(resource_params)

    if successfully_sent?(resource)
      flash[:notice] = "Confirmed already, Please try signing in" if resource.confirmed?
      respond_with({}, :location => after_resending_confirmation_instructions_path_for(resource_name))
    else
      respond_with(resource)
    end
  end

我只是在确认用户的情况下覆盖了闪光通知

答案 1 :(得分:0)

您要决定的第一件事是,您是否真的想为确认的用户发送消息。这可能允许用户枚举(即让机器人尝试在您的网站上找到用户的电子邮件...这就是为什么有paranoid mode

如果您确实要显示确认消息,则无需覆盖控制器。您的用户在资源中已经出现错误:“已经确认,请尝试登录”。因此,您不需要为此修改闪存,您可能只想使用devise_error_messages! (或您自己的自定义代码显示错误内容)。

希望这有帮助。