gpt4 book ai didi

ruby-on-rails - rails : validating a field is present only if another is present

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:20 25 4
gpt4 key购买 nike

我有一个模型,其中有两个字段在技术上可以为空。字段名称是 :is_activated:activated_at:activated_at 仅在 :is_activated 设置为 true 时才需要。如果 :is_activatedfalse,则不需要存在。在 Rails 中将此验证直接设置到 ActiveRecord 中的合适方法是什么?

最佳答案

您可以使用 Proc:activated_at 验证器上。

validates :activated_at, :presence, if: Proc.new { |a| a.is_activated? }

推荐阅读:


最后,您应该考虑将 :is_activated 重命名为 :activated。这在 Rails 中被认为是更好的做法。 is_ 前缀在其他语言中用于 bool 属性,因为它们的方法名称不支持 ? 字符。 Ruby 会,而 Rails 会在 bool 属性上生成 ___? 方法。因此,最好只调用属性 :activated 并使用 activated? 检查它。

关于ruby-on-rails - rails : validating a field is present only if another is present,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com