Active record validation Issue


I am trying to put some validation using active records onto form
like this -

validates_length_of :tag_list, :maximum => 2

When i provide value of tag_list as "abc" then it gives the proper
that length cannot be more than two. And when i provide value of
tag_list as
"abc xyz" then my application accepts the data, which should not happen
because the complete length of input data is more than 2.
So i think when i include space in input data then it counts the words
if space is not there in input than the charcters will be counted.

Could anyone help me out here? Thanks in advance!!

Are you using the acts_as_taggable plugin? 'Cause then tag_list varies between string and array. Don’t know if that’s the case here though.


Yes, i am using acts_as_taggable plugin. But then what could be the
solution for this?

Any solution to this???
I am stuck :frowning:

Well if acts_as_taggable behaves as Lasse says then sounds like you
need to write a custom validation method that checks the various cases
that can occur. Something like

validates :tags_long_enough

def tags_long_enough
  if ...
    errors.add(:tag_list, "those tags are not nice")

would probably do the job


What are you trying to validate? That the tag_list doesn't contain
elements longer than 2 charaters?

I reckon you'd have to do the validation manually then

def validate
  #Do some checks on self.tag_list and if it fails:
  errors.add(:tag_list, 'cannot contain elements longer than 2