加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:53:36 所属栏目:百科 来源:网络整理
导读:我正在使用带有 jquery和ajax的rails来检查用户名的可用性.我在用 ????以下用于jquery验证目的的插件. https://github.com/posabsolute/jQuery-Validation-Engine 在我的控制器中,我使用以下方法检查用户名可用性. def check_name name = params[:name] if n
我正在使用带有 jquery和ajax的rails来检查用户名的可用性.我在用
????以下用于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"%>

在同一视图中,在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"
            },

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

def check_user
  user = params[:fieldValue]
  user = User.where("username = ?",username).first
  if user.present?
    render :json =>  ["free-user","This User is already taken"]
  else
    render :json =>  ["free-user",""]
  end
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读