在我的日程模型中,我想给:wdays字段添加一些验证,它是一个int[].我只想要0..6.有效

有效的

Schedule.wdays = [0,1,6]

无效的

Schedule.wdays = [0,1,10]

我试着用

validates :wdays, inclusion: { in: [0, 1, 2, 3, 4, 5, 6] }

validates :wdays, inclusion: { in: 0..6 }

但两者都不起作用

验证模型中数组中的值的正确方法是什么?

推荐答案

我不认为默认Rails验证器会在这里起作用,但您可以这样做:

validate :validate_wdays

def validate_wdays
  if !wdays.is_a?(Array) || wdays.any?{|d| !(0..6).include?(d)}
    errors.add(:wdays, :invalid)
  end
end

Postgresql相关问答推荐

无法在PostgreSQL中创建方案和表

一列引用两个不同的表

Postgres SQL:获取列值在连续日期之间已更改的行

在Ubuntu 18.04 Bionic上安装PostgreSQL(已删除回购)

JPA将没有时区的Postgres时间戳调整为服务器时区

Npgsql中准备好的语句和参数化查询有什么区别?

如何在 postgres 中查询键设置为空值的 jsonb 字段

如何获取在 Go 中完成的 SQL 插入的错误详细信息?

无法使用golang在postgresql中使用自定义类型插入/更新数据

为什么 postgresql 可以在这个查询中高效地使用索引?

如何在 PostgreSQL 中使用正则表达式删除单词之间的所有特殊字符和多余空格

如何在 Postgres 中的列上删除唯一约束?

postgreSQL 将列数据类型更改为没有时区的时间戳

并发刷新materialized视图

在PostgreSQL中 Select 数组列的总和

与 Oracle 的 CONNECT BY ... START WITH 等效的 PostgreSQL 语法是什么?

从 PostgreSQL 序列中 Select 多个 id

带有偏移限制的 Select 查询太慢了

如何将 PostgreSQL 查询输出导出到 csv 文件

Postgresql 用随机值更新每一行