2011-01-29 29 views
-1

我正在使用Ruby on Rails 3,我想知道我的方法來驗證新記錄是否好。關於自定義驗證方法的建議

我不使用常見的RoR的驗證系統,所以在我的模型我都自定義的驗證注資方式這樣的:

def validates_user_name(user) 
    ... 
    end 

    def validates_user_surname(user) 
    ... 
    end 

    ... 

,我從控制器這樣

def create 
    ... 
    @user.validates_user_name(params[:user]) 
    @user.validates_user_name(params[:user]) 
    ... 
end 

調用驗證新用戶的創建是否是一種好方法?黑客使用這種方法會出現問題嗎?

+0

我只是好奇你爲什麼不使用內置的ActiveRecord驗證。這絕對是一種方法,但我可能會有一個`validate_user(params [:user])`方法來處理所有事情。 – raidfive 2011-01-29 19:23:39

+0

因爲我想對驗證擁有越來越多的控制權:就像我可以在需要和想要的地方調用驗證方法:我想要什麼! ;-) – user502052 2011-01-29 20:23:45

回答

1

我認爲你會很難說服任何人,你的自定義驗證比內置Rails更好,特別是如果驗證邏輯類似。

如果您仍想控制事件發生的時間,則應利用before_create之類的內置回調掛鉤。這樣做有很多好處,包括自動事務回滾和解耦。但是,如果你正在做的事情已經由Rails完成了,那麼不可能重新發明輪子。