しばらくの間、これについて Web を検索しましたが、解決策が見つからないようです。Devise authentication gem がインストールされた Ruby on Rails を入手しました。私はTwitter Bootstrapを使用して、すばやく簡単にレイアウトできるようにしています.Bootstrap Modalを介してログインする方法を知りたいと思っていました.
今、モーダルを作成し、ページのボタンを押すとポップアップします。(Devise コンポーネントで作成された) 素敵なログイン フォームが表示され、ログイン資格情報を入力するとログインします。無効なユーザー名/パスワードでログインしようとして間違いを犯すまで、すべてうまくいきます。Devise は、無効なユーザー名/パスワードを入力したというエラーを表示するログイン ページ (/users/sign_in) に誘導します。
これはあまりスムーズではないので、ログイン ページにリダイレクトするのではなく、Bootstrap Modal 内でエラーを表示したいと考えました。
フォームの送信ボタンを既に変更しているため、送信されなくなりましたが、代わりにこの JavaScript にリンクしています。
<script type="text/javascript">
function check_credentials() {
if(check_form() == true) {
$("#new_user").submit();
} else {
document.getElementById("alert_box").style.display = "block";
}
}
function check_form() {
if(true) {
return true;
}
return false;
}
</script>
*check_credentials*: スクリプトのエントリ ポイント
check_form 関数を呼び出し、ログインする (true を返す) か、エラーを表示するための alert_box を表示します (false を返す)。
*check_form*:
入力された資格情報が正しいかどうかをチェックし (登録ユーザーに対してチェックするために mysql データベースを使用)、正しい場合は true を返し、そうでない場合は false を返します。
お気づきかもしれませんが、check_form 関数が実装されていないため、これは機能しません。これは、ここで行き詰まったためです。Devise ログイン資格情報チェッカーを使用して、入力した資格情報が正しいかどうかを確認する必要があります。そこで、Devise コントローラー ({Ruby install dir}\lib\ruby\gems\1.9.1\gems\devise-2.2.3\app\controllers\devise) を探し始めました。私はまだ Ruby の初心者なので、私は本当にそれを作ることができません。
資格情報を確認するための適切な Devise 関数を呼び出すか、私のためにこれを行う新しい関数を作成することで、誰かが私を助けてくれますか?
さらに情報が必要な場合、または不明な点がある場合は、私に尋ねてください。この情報を追加するためにできる限りのことをします.
お時間をいただき、ありがとうございました。
乾杯、パトリック