簡體   English   中英

如何在Rails中編寫對枚舉的驗證

[英]How to write validation for enum in rails

我的api中有一個模型中有一個枚舉

enum pay_method: {
  cash: 0,
  card: 1
}

我想對此枚舉進行驗證,但我不能這樣做。 我為此在模型中編寫了一個驗證,但未生效

枚舉驗證將無法進行,因為Rails甚至不允許分配帶有錯誤值的枚舉變量。 驗證之前,您會得到一個錯誤。 對於此行為,這里有一個很好的討論https://github.com/rails/rails/issues/13971

如果提交的值與鍵或哈希值之一不對應,rails枚舉功能將引發錯誤。 在這種情況下,它與密鑰不對應,因為您要提交的值是一個字符串,因此直到此處正確為止。

該錯誤仍然會出現,因為在驗證過程之前已設置了枚舉。 這可以幫助您了解

@shippimg = Shippig.first
@shipping.status = 99
ArgumentError: '99' is not a valid status

rails開發人員說,程序員是負責任的人,他們在維護枚舉屬性時使用哪些值

我為驗證枚舉包含了一顆寶石。 這至少可以阻止您的服務器崩潰https://github.com/CristiRazvi/enum_attributes_validation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM