Thanks Fred, that worked!  I created config/initializers/
custom_validations.rb and moved the require line there from the
environment.rb file.  It's not clear to me why this works, and it
seems like it's overkill to create a new file for this, but as long as
it works it's cool with me.

Thanks again.
-Gavin

On Dec 9, 11:09 am, Frederick Cheung <[EMAIL PROTECTED]>
wrote:
> 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