Active record validation Issue

Hello,

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

validates_length_of :tag_list, :maximum => 2

When i provide value of tag_list as "abc" then it gives the proper message 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 and 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.

–Lasse

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")   end end

would probably do the job

Fred

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

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