我们在 Rails 应用程序中使用 Devise 进行身份验证。我们有两种模式 - 用户和专业人士。我们有许多专业人士不小心尝试以用户身份登录,如果用户登录失败,我们想检查输入的电子邮件是否与专业人士匹配。
例如,如果 Professional 尝试以用户身份登录,我们希望显示如下所示的 flash 消息:
“我们找不到此帐户的用户名/密码,但是,我们确实找到了专业帐户。单击此处以专业身份登录。”
关于如何用设计做到这一点的任何想法?
我们在 Rails 应用程序中使用 Devise 进行身份验证。我们有两种模式 - 用户和专业人士。我们有许多专业人士不小心尝试以用户身份登录,如果用户登录失败,我们想检查输入的电子邮件是否与专业人士匹配。
例如,如果 Professional 尝试以用户身份登录,我们希望显示如下所示的 flash 消息:
“我们找不到此帐户的用户名/密码,但是,我们确实找到了专业帐户。单击此处以专业身份登录。”
关于如何用设计做到这一点的任何想法?
我用忘记密码功能做了类似的事情。它可以帮助你。
编辑:添加专业检查。
def reset
@idiot = User.where(:email => params[:email]).first
unless @idiot.nil?
Notifier.send_reset_notice(@idiot).deliver
redirect_to new_user_session_url, notice: "A new password will be emailed to #{@idiot.name}'s address shortly."
else
@professional = Professional.where(:email => params[:email]).first
unless @professional.nil?
redirect_to new_professional_session_url, notice: "That email address is assigned to a professional. Sign in below."
else
redirect_to new_user_session_url, :flash => { :error => "That email address matches no user." }
end
end
end
在视图中:
<%= form_tag reset_path(:email) do %>
<%= email_field_tag :email, nil, :placeholder => 'Email address' %>
<%= submit_tag "Reset password" %></div>
<% end %>
应该让你走上正轨。