2

我刚刚为用户模型设置了验证。我的用户模型中的代码就是这样。
如果我想为每个标签添加最大长度验证,我应该添加什么?
如果可能的话,我也想知道更短的方法来编码这些整个验证。

  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'
4

2 回答 2

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
于 2012-12-09T00:47:40.657 回答
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
于 2012-12-11T04:35:57.620 回答