2009-08-01 60 views
0

我需要在实际创建用户记录之前在登录字段上运行内置验证,有没有办法在Authlogic中执行此操作?原因是当用户键入新的登录名时,会调用AJAX来检查并查看登录信息的唯一性,有效性等。一旦完成,用户可以输入他的电子邮件来声明登录信息,这是一个2步处理。Authlogic在创建操作之前在登录时运行验证

回答

1

用户模型使用ActiveRecord验证,所以这不是特定于Authlogic。如果您想在模型上运行验证,您可以拨打user.valid?。这将返回truefalse,具体取决于整个模型是否有效。但是它也填充了user.errors对象,因此您可以检查给定属性是否有效。

这是一些使用RJS做AJAX的代码。但是你可以使用任何东西,然后按照你的需要组织它。

user = User.new(params[:user]) 
user.valid? # we aren't interested in the output of this. 
error = user.errors.on(:login) 
if error 
    page.insert_html :before, "user_login", content_tag(:span, error, :class => "error_message") 
end 

你可能有兴趣在我的Mastering Rails Forms屏视频系列,我覆盖在第二插曲这个话题。

+0

感谢Ryan,后来我了解到Authlogic利用ActiveRecord验证并最终使用validate_attributes插件。您的建议是一个很好的选择,谢谢分享。 – Bob 2009-08-04 15:22:19