arrays - 使用 Rails 4+ 和 PostgreSQL 数组检查非空数组

标签 arrays postgresql ruby-on-rails-4

我指的是 this blog关于如何在 Rails 4 中使用 postgresql 数组。更准确地说,我使用的是 Rails 4.1.8。

我想强制该数组不应该为空(应该至少有一个或多个值)wrt 下表定义的 phones 属性。

如下所示设置 null: false 会阻止我执行 Contacts.create(phones: nil),但是 Contacts.create(phones: [] ) 保存到数据库。

class CreateContacts < ActiveRecord::Migration
  def change
    create_table :contacts do |t|
      t.string :name

      t.text :phones, array: true, null: false

    end
  end
end

我可以使用什么约束来确保 Contacts.create(phones: []) 引发错误,指出数组中至少应该有一个条目?

最佳答案

常规的存在验证应该满足您的要求,因为空数组不存在?

class Contact < ActiveRecord::Base
  validates :phones, presence: true
end

关于arrays - 使用 Rails 4+ 和 PostgreSQL 数组检查非空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28796443/

相关文章:

java - Hibernate UserType 在测试应用程序中工作,但不在 tomcat 上的 Web 服务上工作

ruby-on-rails - 错误 : Syntax - Html to RoR

ruby-on-rails - Assets 管道: use javascript files for only one controller

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

postgresql - 使用当前项目索引更新行

sql - 无法将 PSQL 字符串转换为时间戳

javascript - 如何在 haml 的内联 JavaScript 中使用 Ruby 变量?

Javascript 从索引处的数组获取值,同时如果索引不存在则避免未定义?

c - 在数组中读取迷宫文件的数组,立方体大小不均,多余字符

java - 矩阵减法混淆 (Java)