hi, i created a validation to prevent users to write text uppercase in
my fields, i have writing the code on my class model like this:

#####################

  validate :detect_uppercase_title, :detect_uppercase_description

  private

  #prevent users to write text uppercase, and reset field text to
lowercase
  def detect_uppercase_title
    size_letters = title.scan(/\w/).size
    size_invalid = title.scan(/[A-Z]/).size
    if size_invalid > 0
      if (size_letters / size_invalid) < 4 and size_letters > 10
        errors.add( :title,
I18n.t('activerecord.errors.messages.uppercase'))
        write_attribute(:title, title.downcase)
      end
    end
  end
  def detect_uppercase_description
    size_letters = description.scan(/\w/).size
    size_invalid = description.scan(/[A-Z]/).size
    if size_invalid > 0
      if (size_letters / size_invalid) < 4 and size_letters > 10
        errors.add( :description,
I18n.t('activerecord.errors.messages.uppercase'))
        write_attribute(:description, description.downcase)
      end
    end
  end

#####################

but now i want to define a function to doing this without repeating and
make more DRY the code.

i have tried with this:

#####################

  validate detect_uppercase(title), detect_uppercase(description)

  private


  def detect_uppercase(field)
    size_letters = field.scan(/\w/).size
    size_invalid = field.scan(/[A-Z]/).size
    if size_invalid > 0
      if (size_letters / size_invalid) < 4 and size_letters > 10
        errors.add( field,
I18n.t('activerecord.errors.messages.uppercase'))
        write_attribute(field, field.downcase)
      end
    end
  end

#####################

but i see it not work.
hw can i do to implement my necessity?
-- 
Posted via http://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to