Ruby on rails 如何使用ajax、ruby和rails在客户端检查可用性
我是RubyonRails的新手,我正在尝试在客户端使用ajax检查validate。在发布后没有检查,我成功地检查了NOTNULL,但我不知道检查可用性。我尝试了一些代码,但出现以下错误: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
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