Authlogic和条件验证

时间:2010-06-28 10:25:57

标签: ruby-on-rails ruby authlogic railscasts

是否有可能在authlogic的模型User中执行条件验证,该模式根据某些条件使用acts_as_authentic块内的验证?我正在尝试实现多步注册表单,在Ryan Bates的railscast 217中用authlogic描述。

1 个答案:

答案 0 :(得分:3)

是的,可以使用authlogic设置条件验证。在您的用户模型中,您可以:

class User < ActiveRecord::Base

acts_as_authentic do |config|
  config.merge_validates_format_of_login_field_options {:if => :do_validation}
end

其中:do_validation是User中的一个方法,它根据您定义的某些条件返回true或false。您还可以使用其他钩子。有关此示例的信息,请参阅http://www.rubydox.net/class/authlogic/2.1.3/Authlogic::ActsAsAuthentic::Login::Config。你可以为密码字段做类似的事情。

请注意上面的示例代码来自内存,因为我不在我可以参考我自己的源代码的地方,我做了这件事。我将在明天返回工作时进行验证并在必要时予以纠正。

更新我验证了我的代码示例是否正确。另请注意,validates_format_of的任何标准RoR选项都可以合并到此特定的authlogic配置设置中。 http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M001401