Ruby on rails 如何使用ajax、ruby和rails在客户端检查可用性

Ruby on rails 如何使用ajax、ruby和rails在客户端检查可用性,ruby-on-rails,ruby,ajax,Ruby On Rails,Ruby,Ajax,我是RubyonRails的新手,我正在尝试在客户端使用ajax检查validate。在发布后没有检查,我成功地检查了NOTNULL,但我不知道检查可用性。我尝试了一些代码,但出现以下错误: NameError in Welcome#index ../welcome/index.html.erb where line #17 raised: undefined local variable or method `name' for #<#<Class:0x3d80e28>:0

我是RubyonRails的新手,我正在尝试在客户端使用ajax检查validate。在发布后没有检查,我成功地检查了NOTNULL,但我不知道检查可用性。我尝试了一些代码,但出现以下错误:

NameError in Welcome#index 
../welcome/index.html.erb where line #17 raised:
undefined local variable or method `name' for #<#<Class:0x3d80e28>:0x3354b58>
Extracted source (around line #17):
14:             } else if (phonenumber == "" && email == ""){
15:                 alert("Please enter your email or phonenumber in the form");
16:                 return false;
17:             } else if (<% @usernames.include?("#{name}")%>){
18:                 alert("Please change your name");   
19:             }
20:         });
我知道我的问题是控制器中没有“name”方法,但我想在客户端检查name。所以请帮我解决这个问题!或者帮助我尝试另一种检查可用性的方法:

更新: 我试图创造:

var names = <%= @usernames%>

您是否正在尝试填充js中的所有用户名?真正地不要这样做,在某种程度上,当您试图立即验证它时,您将向人们公开所有用户名

对于客户端验证,您可以使用jquery验证插件,该插件将验证与js代码的其余部分分开

另外,为了验证是否可以将用户名分配给用户,可以在用户开始键入时启动ajax。此外,您还可以依赖模型错误来实现唯一性

在您的模型中,您可以编写validates:username,:university=>true,这样您就不必更改代码,rails将为您提供适当的错误消息


我希望这有帮助

若我在模型中检查validate,我必须将我的“用户名”发布到sever fist,然后我可以在客户端进行validate。但我只想检查客户端中可用的用户名。无论如何,谢谢你!那么,您可以在客户端拥有一个用户名数组,并使用该数组进行验证。但这不是您想要做的事情,因为用户可以看到您在您的服务器上有哪些用户名,这并不理想:
def index
    @usernames = User.find(:all, :select => "username")
    @user = User.create(:username => params[:username], :password => params[:password],
                        :email => params[:email], :phonenumber => params[:phonenumber])
    if @user 
      render 'index'
    else
      render 'index'
    end
  end
var names = <%= @usernames%>
SyntaxError: illegal character