AnA*_*ice 4 ruby regex ruby-on-rails ruby-on-rails-3
在我的应用程序中,我让用户选择一个用户名,就像twitter注册页面:https://twitter.com/signup
当用户开始输入用户名时,我希望实时让用户知道用户名是否可用且有效.
我用来验证用户名的正则表达式是字母数字是:
/^[a-z0-9]+[-a-z0-9]*[a-z0-9]+$/i
Run Code Online (Sandbox Code Playgroud)
特定 params[:username]
在控制器中,如何验证用户名是否为字母数字.注意,我不是在这里保存记录只是验证.所以模型验证不起作用.
想法?谢谢
您仍然希望使用模型验证.
也许这样的东西:
class User
validates :username, :format => { :with => /your regex/ }, :uniqueness => true
end
# then in some controller action or rack app
def test_username
user = User.new(:username => params[:username])
# Call user.valid? to trigger the validations, then test to see if there are
# any on username, which is all you're concerned about here.
#
# If there are errors, they'd be returned so you can use them in the view,
# if not, just return success or something.
#
if !user.valid? && user.errors[:username].any?
render :json => { :success => false, :errors => user.errors[:username] }
else
render :json => { :success => true }
end
end
Run Code Online (Sandbox Code Playgroud)