2016-10-11 38 views
0

在我正在構建的學習RoR的應用程序中,我想開始學習更多關於驗證的知識。除了構建自定義驗證(例如使用正則表達式)之外,我還想知道對於地址,貨幣,日期/時間格式,語言等數據的常見驗證,最好的寶石是什麼?這是爲了構建一個基本的集合,用於新的應用程序。Rails 5 - 數據驗證寶石

我在這些下面來使用:

incoterms,度量單位(來自UNECE或ISO20022)或VAT ID如何?還有其他的我應該看看嗎?

+0

我唯一使用的另一個是validates_lengths_from_database。 – David

+1

只是來自經驗的評論。不要依賴具有多個連接的大型應用程序的導軌唯一性驗證。確保您的數據庫具有適當的唯一索引。 –

回答

1

隨着您對驗證的深入深入,您會發現需要構建用於處理某些主題(電子郵件/貨幣等)的gems,並不像爲您的特定用例開發自定義驗證那樣簡潔。例如,除了電子郵件中的正則表達式之外,我不會使用任何東西,而是通過電子郵件中的正則表達式來驗證@符號和後面的一些字符,因爲現在有很多後綴(.co/.uk/.me/.us等)很難保證預製寶石。貨幣驗證通常也很簡單,因爲您希望使用#。## ##格式的特定格式,但是如果您偏離了另一個自定義驗證程序而不回退到外部庫,則會更好。由於您可能會讓他們從您創建的預設列表中選擇一個國家,因此國家通常不會通過驗證,因此像presence這樣的標準導軌驗證就足夠了。這就是說,我喜歡用來處理客戶端驗證而不是任何主題的驗證gem是「clientSideValidations」gem,但它只適用於rails 4.2。