gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 00:00:54 26 4
gpt4 key购买 nike

我正在使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com