在 Rails 中使用 jquery 和 Ajax 检查用户名可用性

2023-12-01

我使用 Rails 和 jquery 和 ajax 来检查用户名的可用性。我在用 以下插件用于 jquery 验证目的。

https://github.com/posabsolute/jQuery-Validation-Engine

在我的控制器中,我使用以下方法来检查用户名可用性。

def check_name
 name = params[:name]
 if name.strip == ""
  render :json => { :available => false } 
  return
 end
 user = User.find(:first, :conditions => [ "name = ?", name])
 if user
  render :json =>  ["name", false , "This name is already taken"]
 else
  render :json =>  ["name", true , ""]
 end
end

这是编写该方法的正确方法吗?我检查了许多用户名的可用性 在这个论坛上发帖,但没有任何结果。


我正在添加答案。抱歉耽搁了各位。

首先归功于该插件:https://github.com/posabsolute/jQuery-Validation-Engine。 使用该插件在应用程序中进行验证。

在视图中,我有

<%= f.username_field :username, :id => 'free-user', :placeholder=>'User Name', :class => "validate[required, ajax[ajaxUserCall]]", "data-prompt-position" => "topLeft:0,9"%>

在同一视图中,在 javascript 中:

<script type="text/javascript">
 $(document).ready(function(){
  $("#free-user").bind("jqv.field.result", function(event, field, errorFound, prompText){
    if(errorFound){
        $(".continue").attr("disabled", false);  // .continue is a button
    } else{
        $(".continue").attr("disabled", true);
    }
  })
 });
</script>

在routes.rb中我有以下路线。

match '/check-user' =>"users#check_user"  // creating route for ajax call

在 jquery.validationEngine-en.js 文件中,我有以下内容:

"ajaxUserCall": {
                "url": "/check-user",
                // you may want to pass extra data on the ajax call
                "alertText": "* This user is already taken",
                "alertTextLoad": "* Validating, please wait"
            },

在用户控制器中,我有以下方法

def check_user
  user = params[:fieldValue]
  user = User.where("username = ?", username).first
  if user.present?
    render :json =>  ["free-user", false , "This User is already taken"]
  else
    render :json =>  ["free-user", true , ""]
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Rails 中使用 jquery 和 Ajax 检查用户名可用性 的相关文章

随机推荐

  • 如何将 dicom 文件转换为 jpg

    我们如何使用java将dicom文件 dcm 转换为jpeg图像 这是我的代码 import java io File import java io IOException import org dcm4che2 tool dcm2jpg
  • Inno Setup 中的全屏背景图像

    如何在 Inno Setup 编译器中为我们的设置提供背景全屏图像 就像下面这张图一样 不要那样做 这违反了 Windows 设计准则 无论如何 如果必须的话 请使用旧版全屏安装程序模式WindowVisible yes指示然后通过修改 现
  • 在 JupyterLab 中扩展代码片段的键盘快捷键

    有谁知道如何创建一个快捷方式 将特定代码粘贴到选定的单元格或将片段扩展为代码块 例如 当按下类似的内容时 我想用有用的导入列表填充单元格Ctrl Shift M 这会将单元格内容扩展为 import numpy as np import p
  • 将多个 Bootstrap 菜单合并为一个移动设备菜单?

    我一直在看这个之前提出的问题 在折叠时合并多个 Bootstrap 3 导航栏菜单 正如您所见 它为这个问题提供了一个很好的解决方案这把小提琴 问题是对于我当前的布局来说 这个解决方案并不完美 它的显示方式如下 它适用于我想的其他场景 但在
  • Jw播放器视频分析,无需上传视频

    是否可以在不将内容上传到 jw 播放器的情况下进行视频分析 取决于您想在哪里查看分析 如果您想在您的JW 玩家帐户仪表板 您需要上传视频或添加外部内容 URL 请参见https support jwplayer com customer p
  • 在ios上混合音频

    我正在尝试混合音频源 这样就不会出现音频闪避 我试图解决的用例是在后台进行音频通话 同时播放音乐和 或收听应用程序音频 没有任何音频闪避 音频闪避是指音频稍微降低并失真以帮助收听另一个音频会话 我可以取消音频和音频混合 或 iOS 吗 我已
  • Rails:“权限被拒绝 - /tmp/cache/assets/development/sprockets/...”?

    当我运行 Rails 应用程序并使用浏览器导航到它们时 我收到错误rails Permission denied path to my rails app tmp cache assets development sprockets 37b
  • Android 无尽列表

    如何创建一个列表 当您到达列表末尾时我会收到通知 以便我可以加载更多项目 一种解决方案是实施OnScrollListener并进行更改 例如添加项目等 ListAdapter处于方便的状态onScroll method 下列ListActi
  • 从 Visual Studio 将文件添加到 WP7 独立存储?

    我正在开发一个 Windows Phone 7 应用程序 我将在其中使用 bing 地图显示您所在位置的 ATM 我有一个包含地址和 GPS 坐标的 xml 文件 但是如何从 Visual Studio 将此文件添加到我的程序中 如果我将
  • 关闭连接之前关闭阅读器

    您是否应该始终在关闭连接之前关闭 DataReader 还是直接关闭连接就可以了 通过关闭连接是否会有效地关闭读者 这是针对 c net 3 5 的 Thanks 除了明确你的意图之外 Microsoft 文档中还提到了这一点 使用 Dat
  • Chrome 上的 Angular2 Table Row 组件以单列显示

    使用中的版本 角2 0 1 角度 cli 1 0 0 beta 17 我有一个页面分为 3 个组件 页面大纲是一个具有自己的布局 包括行 的表格 其中一行包含行组件 在 IE 中 表格显示良好 在 Chrome 中 组件行中的所有数据都显示
  • ObjectContext 实例已被释放 - Winforms Entity Framework

    I am trying to solve this problem and did read content regarding this error but was unable to figure out a solution I am
  • 如何为postgres docker容器的初始化脚本指定当前工作数据库?

    众所周知 可以使用类似于以下命令的 docker 命令复制要在创建容器时执行的 init sql 文件 COPY init sql docker entrypoint initdb d 让我们考虑使用一个非常简单的 create table
  • 前置“\\?\”不适用于处理长路径

    我正在尝试找到一种解决 Windows 字符限制的方法 该限制不允许复制文件名 gt 260 个字符的文件 根据这篇 MSDN 文章 if 附加在文件名前面 这将绕过文件名长度限制 我尝试过这个测试 string source C User
  • 如何设置WebView内容比例(qml QT 5.2)

    我使用 qml WebView QT 5 2 WebView anchors fill parent url http google com 加载的页面内容根据 WebView 宽度进行缩放 如何获得像浏览器中那样的默认比例 left pi
  • 使用 NLTK,当给出某个单词时,如何生成不同形式的单词?

    例如 假设给出 happy 这个词 我想生成其他形式的happy 例如幸福 幸福 等 我已经阅读了有关 Stackoverflow 和 NLTK 参考资料的其他一些先前问题 然而 只有词性标注 变形就像识别句子中某些单词的语法形式 而不是生
  • 来自数据库的动态下拉列表值

    如何将主下拉列表的值连接到子下拉列表中 下拉列表的值来自数据库 main list 和 sub list 表 而且身体加载也不起作用 主列表 id value id no 1 colors 1 2 fruits 2 3 animals 3
  • 位置提供商真的很耗电吗?

    我需要实现基于位置的服务 我不需要精确的位置 所以不需要 GPS 最简单的方法是在应用程序启动时开始侦听位置更新 并将其保留为打开状态 mLocationMgr requestLocationUpdates LocationManager
  • .gitignore 被 Git 忽略

    My gitignore文件似乎被 Git 忽略了 可以吗 gitignore文件损坏 Git 需要哪种文件格式 区域设置或文化 My gitignore This is a comment debug log nbproject 输出来自
  • 在 Rails 中使用 jquery 和 Ajax 检查用户名可用性

    我使用 Rails 和 jquery 和 ajax 来检查用户名的可用性 我在用 以下插件用于 jquery 验证目的 https github com posabsolute jQuery Validation Engine 在我的控制器