1
これについての最善の方法についてはわかりません。Postgres JsonのためのRailsカスタム検証
フィールドの容量がPostgresのjsonbデータ型であると仮定して、キーの値が存在することを検証する必要があります。つまり私は、JSONはそれらの値の両方なしで来る場合、エラーがスローされていること(Railsのバリデーションを使用して)確認する必要があり
{ reception: "", dinner: "" }
入力した:私のフォームでは、私はに容量を初期化しています
{ 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] = nilのハッシュループ内で間違っていることに気づきます。 – power