[英]How to validate pg array length in Ruby on Rails 5?
如何验证我的Note
模型有多少个标签? 我的模特目前:
# == Schema Information
#
# Table name: notes
#
# id :integer not null, primary key
# title :text
# body :text
# organization_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# tags :string default([]), is an Array
#
# Note represents a saved Note that belongs to an organization.
class Note < ApplicationRecord
belongs_to :organization
validates :title, :body, presence: true
end
tags
是数据库中的pg数组。
Rails将在内部处理转换,因此您只需要担心使用Ruby数组对象。
验证看起来像这样:
class Note < ApplicationRecord
validates :tags, length: {
maximum: 10,
message: 'A note can only have a maximum of 10 tags'
}
end
it 'is invalid with more than 10 tags' do
tags = %w(1 2 3 4 5 6 7 8 9 10 11)
note = build(:note, tags: tags)
note.valid?
expect(note.errors[:tags])
.to include('A note can only have a maximum of 10 tags')
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.