On 9 Dec 2008, at 19:05, gaveeno wrote:

>
> I'm having a problem extending ActiveRecord with custom validations
> based on the "Write Custom Validations" recipe from Advanced Rails
> Recipes.  As far as I can tell, I've followed the instructions exactly
> but for some reason this isn't working and it's driving me crazy.
> I've tried making the methods in the custom validations module class
> methods (self.validates...) as well as the way they are below (which
> is the way they are in the instructions).
>
> Any suggestions?
>
Have you tried requiring it from an initializer, not the bottom of  
environment.rb ?

Fred

> Thanks!
> Gavin
>
> ***
> lib/custom_validations.rb
>
> module CustomValidations
>  def validates_phone(*attr_names)
>    attr_names.each do |attr_name|
>      validates_format_of attr_name,
>            :with => /^[\(\)0-9\- \+\.]{10,20} *[extension\.]{0,9} *
> [0-9]{0,5}$/i,
>            :message => "invalid"
>    end
>  end
>  def validates_email(*attr_names)
>    attr_names.each do |attr_name|
>      validates_format_of attr_name,
>            :with => /(^([EMAIL 
> PROTECTED])@((?:[-_a-z0-9]+\.)+[a-z]{2,})$)|(^$)/
> i,
>            :message => "invalid"
>    end
>  end
> end
> ActiveRecord::Base.extend(CustomValidations)
>
> ***
> config/environment.rb
>
> # Be sure to restart your server when you modify this file
>
> # Uncomment below to force Rails into production mode when
> # you don't control web/app server and can't set it the proper way
> ENV['RAILS_ENV'] ||= 'production'
>
> #normal environment.rb stuff
>
> end
>
> require 'custom_validations'
>
> ***
> models/user.rb
>
> class User < ActiveRecord::Base
>  validates_email   :email
> end
>
> ***
> error from console when starting server
>
> /vendor/rails/activerecord/lib/active_record/base.rb:1667:in
> `method_missing': undefined method `validates_email' for #<Class:
> 0x31ac9c8> (NoMethodError)
>
> >


--~--~---------~--~----~------------~-------~--~----~
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 rubyonrails-talk@googlegroups.com
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