1

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

4

1 回答 1

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

于 2010-06-28T22:04:02.633 回答