gpt4 book ai didi

ruby-on-rails - Rails 4 - 验证数组中的元素

转载 作者:行者123 更新时间:2023-12-04 18:03:16 26 4
gpt4 key购买 nike

我的一个模型包含一个名为 things 的虚拟属性。此属性是一个数组,我希望根据一组规则验证该数组中的每个元素。这是我目前的验证尝试:

validates :things, presence: true,  length: { minimum: 2, maximum: 255 }

此代码的问题在于它验证整个数组本身,而不是数组中的每个单独元素。我知道我可以编写一个自定义验证器,但是有什么方法可以使用现有的验证选项对数组中的每个元素运行这些验证吗?我在此找到的其他主题适用于旧版本的 Rails,因此我不确定 Rails 4 是否有新内容可以帮助解决这个问题。

在此先感谢您的帮助!

最佳答案

您是否尝试过自定义验证?您可以在模型中创建自定义验证。

类似这样,其中“things”是您要验证的属性的名称:

模型.rb

validate :check_each_thing

def check_each_thing
things.each do |thing|
if thing.present?
if thing.size < 2 || thing.size > 255
errors.add(:things, 'It should be longer than 2 and shorter than 255.')
end
else
errors.add(:things, 'It should be present.')
end
end
end

希望对您有所帮助:)

关于ruby-on-rails - Rails 4 - 验证数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31621695/

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