1

我已经在网上搜索了一段时间,但似乎找不到解决方案。我安装了 Devise 身份验证 gem 的 Ruby on Rails。我正在使用 Twitter Bootstrap 进行一些不错的快速布局,我想知道如何通过 Bootstrap 模式登录。

现在,我制作了模态框,当我按下页面上的某个按钮时它会弹出。它向我展示了一个漂亮的登录表单(使用 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 登录凭据检查器来检查输入的凭据是否正确。所以我开始寻找设计控制器({Ruby install dir}\lib\ruby\gems\1.9.1\gems\devise-2.2.3\app\controllers\devise),因为我还是 Ruby 的新手,我真的无能为力。

有人可以帮助我调用正确的设计函数来检查凭据或创建一个为我执行此操作的新函数吗?

如果需要更多信息或者有些不清楚的地方,只要问我,我会尽我所能添加这些信息。

感谢您的时间和帮助!

干杯,帕特里克

4

0 回答 0