gpt4 book ai didi

ruby-on-rails - 在 Ruby 类中干燥条件验证

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

我怎样才能干掉我的验证码?我有一个 Discussion 模型,它有一个 categorystatus 字段。状态值取决于类别值。例如,category == 'question' 只能在 STATUSES[:question] 中有状态的讨论。

  STATUSES   = {
question: %w[answered],
suggestion: %w[pending planned started completed declined],
problem: %w[started solved]
}
validates :status, allow_blank: true, inclusion: { in: STATUSES[:question] }, if: lambda { self.category == 'question' }
validates :status, allow_blank: true, inclusion: { in: STATUSES[:suggestion] }, if: lambda { self.category == 'suggestion' }
validates :status, allow_blank: true, inclusion: { in: STATUSES[:problem] }, if: lambda { self.category == 'problem' }

我正在使用 Rails 3。

最佳答案

:inclusion :in 接受 lambda 本身:

validates :status, inclusion: { in: lambda { |o| STATUSES[o.category.to_sym] } }

文档:http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of

关于ruby-on-rails - 在 Ruby 类中干燥条件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091019/

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