【问题标题】:Rails Validation: Limit input to specific valuesRails 验证:将输入限制为特定值
【发布时间】:2011-01-18 23:02:14
【问题描述】:

我正在寻找“Rails 方式”来编写将可接受的输入值限制为预定列表的验证。

就我而言,我只想接受值“-5”、“-2”、“+2”、“+5”和 nil。但是,我认为这是一个一般性问题最好:如何在 Rails 模型中预定义可接受的条目值列表?

谢谢!

【问题讨论】:

  • 很好的答案,谢谢!我之所以选择 Costa,是因为答案是一样的,而且 Costa 的声誉低了大约 2500 :) 两者都干杯。
  • 我知道这是不久前的事了,但由于包含链接和其他有效建议,我会推荐 Beerlington 的答案。质量是我们一直想要的决定因素。 :)

标签: ruby-on-rails validation ruby-on-rails-3


【解决方案1】:

validates_inclusion_of 应该可以工作。例如:

  validates_inclusion_of :attr, :in => [-5, -2, 2, 5], :allow_nil => true

【讨论】:

    【解决方案2】:

    您想将validates_inclusion_of:in:allow_nil 选项一起使用。

    validates_inclusion_of :field, :in => %w(-5 -2 2 5), :allow_nil => true
    

    您可能还想与validates_numericality_of结合使用

    【讨论】:

      【解决方案3】:

      Rails 3+

      执行此操作的现代方法如下:

      validates :field, inclusion: { in: [ -5, -2, 2, 5 ], allow_blank: true, message: "not an allowable number." }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-18
        • 2012-01-23
        • 1970-01-01
        • 1970-01-01
        • 2015-10-22
        • 1970-01-01
        相关资源
        最近更新 更多