gpt4 book ai didi

ruby-on-rails - 将验证错误关联到多个字段

转载 作者:行者123 更新时间:2023-12-04 06:37:02 24 4
gpt4 key购买 nike

假设我有一个对多个属性进行操作的验证。例如,我将某个模型的“长度”存储为两个单独的整数 :feet, :inches 并且我想确保长度不为零,即 :feet 和 :inches 都是非负数且至少一个是积极的。这很容易,例如通过添加

errors.add_to_base('invalid length') unless (feet >= 0 and inches >= 0 and feet+inches > 0)

到我的验证方法(以及对完整性和英寸<12的单独检查)。

但我想将错误与字段 :inches 相关联和 :feet这样当出现错误时,表单中的两个字段都会突出显示。现在我唯一能做的就是调用 errors.add()两次,每个字段一次。但是我使用脚手架生成了这个模型,所以这需要吐出两条错误消息,一个用于 errors.add() 的每次调用。 .同样在表单本身中,我想在这两个字段旁边使用一个标签“长度”,并且我希望在出现错误时突出显示该标签。

我需要放弃脚手架的东西来实现这一目标吗?如何?谢谢!

最佳答案

处理此问题的一种方法是创建一个名为“length”的虚拟属性并在其上而不是在组件字段上设置错误。换句话说,创建一个自定义验证来检查各种错误条件,构建一个字符串(以防有多个错误),然后将该字符串添加到 errors[:length] .表单需要在与“feet”和“inches”字段视觉关联的地方显示长度属性的内联错误。显然,您需要放弃脚手架才能做到这一点。

Railscasts episode 16有虚拟属性教程,到现在(2007 年!)有点陈旧,但仍然可以观看。把它想象成一部经典的黑白电影......

关于ruby-on-rails - 将验证错误关联到多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4753818/

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