我刚刚为User模型设置了验证。我的用户模型中的代码就是这样的。
如果我想为每个标签添加最大长度验证,我应该添加什么?
如果可能的话,我也想知道更简单的方法来编写那些整个验证。
acts_as_taggable_on :tags
validates_presence_of :tag_list,
:message => "Create at least 1 tag"
validates_size_of :tag_list,
:maximum => 4,
:message => '4 tags maximum'
答案 0 :(得分:2)
validate :max_tag_size # HERE WITH VALIDATE - NOT VALIDATES!
def max_tag_size
errors[:tag_list] << "4 tags maximum" if self.tag_list.split(",").count > 4
errors[:tag_list] << "tag lenght < 10 letters " if self.tag_list.split(",").collect(&:length).max >= 10
end
答案 1 :(得分:1)
我尝试了很多东西,最后我发现了如何解决! 这使它工作正常:))
validate :max_tag_size
def max_tag_size
errors[:tag_list] << "2 tags maximum" if tag_list.count > 2
self.tag_list.each do |tag|
errors[:tag_list] << "#{tag} must be shorter than 10 characters maximum" if tag.length > 10
end
end