我指的是 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/