2010-06-28 54 views
1

是否有任何可能在authlogic的模型中執行條件驗證用戶,根據一些條件使用acts_as_authentic塊內的驗證?我試圖實施多步驟註冊表格,在瑞安貝茨的railscast 217中用authlogic進行了描述。Authlogic和條件驗證

+0

您的問題非常隱晦。也許你可以發表你的代碼和解釋你正在努力完成的評論。 – 2010-06-28 20:44:20

回答

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是用戶,基於你定義一些條件返回true或false的方法。還有其他的鉤子也可以使用。有關此示例的信息,請參閱http://www.rubydox.net/class/authlogic/2.1.3/Authlogic::ActsAsAuthentic::Login::Config。你可以爲密碼字段做類似的事情。

請注意上面的示例代碼來自內存,因爲我不在可以引用我自己的源代碼的地方,在這個地方我做了這件事情。我將在明天重新開始工作並在必要時進行更正。

UPDATE我驗證了我的代碼示例是正確的。注意到validates_format_of的任何標準RoR選項都可以合併到此特定的authlogic配置設置中,這可能很有用。 http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M001401