1

しばらくの間、これについて 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 関数を呼び出すか、私のためにこれを行う新しい関数を作成することで、誰かが私を助けてくれますか?

さらに情報が必要な場合、または不明な点がある場合は、私に尋ねてください。この情報を追加するためにできる限りのことをします.

お時間をいただき、ありがとうございました。

乾杯、パトリック

4

0 に答える 0