パスワードを忘れた機能で同様のことをしました。それはあなたを助けることができます。
編集:プロフェッショナルチェックを追加しました。
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 %>
あなたを正しい軌道に乗せるはずです。