我正在使用acts-as-taggable-on
gem,我正在尝试对标签数量进行某种验证。我遵循了本教程,它工作正常:http://railscasts.com/episodes/382-tagging
我有一篇文章可以作为标记。现在我确认需要存在标签和字符数:
class Article < ActiveRecord::Base
acts_as_taggable
validates :tag_list, presence: true, length: { maximum: 100 }
end
对于标签来说,这不是一个很好的解决方案,因为它们中有许多具有许多不同的大小,并且用逗号分隔。如何设置需要与文章连接的所需最小和最大标签数?我想将最小值设置为3个标签,最多设置为10个标签,因此文本长度不是一个好的解决方案。
感谢您的帮助:)
答案 0 :(得分:2)
此示例应指向正确的方向:
validate :tag_list_validation
def tag_list_validation
errors[:tag_list] << "3 tags minimum" if tag_list.count < 3
errors[:tag_list] << "10 tags maximum" if tag_list.count > 10
self.tag_list.each do |tag|
errors[:tag_list] << "#{tag} must be shorter than 100 characters maximum" if tag.length > 100
end
end
编辑:解决您的问题:
class Article < ActiveRecord::Base
acts_as_taggable
validate :tag_list_count
def tag_list_count
errors[:tag_list] << "3 tags minimum" if tag_list.count < 3
errors[:tag_list] << "10 tags maximum" if tag_list.count > 10
end
end