ruby-on-rails - 在 Rails 中使用 jquery 和 Ajax 检查用户名可用性

标签 ruby-on-rails ajax ruby-on-rails-3 jquery

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

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

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

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 。 使用插件在应用程序中进行验证。

在 View 中,我有

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

在同一 View 中,在 java 脚本中:

<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"
            },

在用户 Controller 中,我有以下方法

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

关于ruby-on-rails - 在 Rails 中使用 jquery 和 Ajax 检查用户名可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8670868/

相关文章:

ruby-on-rails - 我可以使用相同的网址,但使用不同的动态分段吗?

php - 如何描述我的网络应用程序的内部工作原理

mysql - 选择偏移量 > 0 的最大值返回 nil

ruby-on-rails - 在 Ruby 中提取 IMG 标签

jquery - 如何让用户在 Django 中只喜欢/不喜欢帖子一次?

mysql - 如何给 "push ahead"记录一个给定的值?

ruby-on-rails - Rails 从片段缓存中遗漏了一些部分

mysql - 如何使模型指向非默认模式

ruby-on-rails - 使用 rspec 测试 Draper 增强模型

python - 指向 403 Forbidden 的 Django Ajax 表单提交