2015-10-18 57 views
0

我有一個session controller,它管理登錄/註銷操作。這些與任何模型都沒有關聯。我想用此會話控制器的validates幫助器方法,以便我可以使用:maximum, :minimum等條件的username and password。但是如果沒有模型,我該如何使用這些驗證方法。另外,如果我使用這些助手,可以很容易地與我的simple_form登錄頁面集成爲error message,與我爲user註冊頁面所做的類似。使用無模型會話控制器驗證輔助方法

如果上面的幫助器方法不可能被使用,我有什麼替代方法可以輕鬆地與我的simple_form接口?

回答

1

可以在不創建模型的情況下使用驗證,即從ActiveRecord::Base繼承的類。你可以有一個包含ActiveModel::Validations的類並使用它的方法。例如:

class Session 
    include ActiveModel::Validations 

    attr_accessor :username, :password 

    def initialize(user, pass) 
    @username = user 
    @password = pass 
    end 

    validates_length_of :username, minimum: 5 
    validates_length_of :password, minimum: 7 
end 

而且你使用這樣的:

session = Session.new("name", "secret") 
session.valid? ## => false 
+0

@InQusitive有工作了嗎? – Brozorec

+0

是的,它工作,但simple_form沒有顯示錯誤。 – InQusitive