1
不確定有關此最佳方式。Rails自定義驗證Postgres Json字段
假設我有字段容量,這是一個Postgres jsonb數據類型,我需要驗證鍵值存在。在我的形式,我初始化容量:
{ reception: "", dinner: "" }
我需要確保(使用Rails驗證),如果是JSON進來沒有這兩個值,則會引發錯誤輸入,即:
{ reception: "1000", dinner: "300" }
做這件事的最好方法是什麼?我可以在沒有問題的情況下在客戶端進行操作,但希望使用備用服務器端。在服務器端容量永遠不會是零,因爲我已經像上面那樣初始化了它,所以不能僅僅調用正常的驗證方法。
是這樣的嗎?或者有更好的方法嗎?
def capacities_has_values
if capacities.present?
check_capacities(capacities)
end
end
def check_capacities(capacities)
capacities.each do |k, v|
if k[v] != nil
errors.add(:capacities, "Please add #{k.to_s} capacity") unless k[v].is_integer?
end
end
end
感謝
ETA這樣做:
class String
def is_integer?
self.to_i.to_s == self
end
end
OK,還注意到自己的K [V] =零是錯誤的散列循環中! – power