Why not just use validates_uniqueness_of, with a custom :message ? custom-err-msg is handy for custom messages: http://github.com/gumayunov/custom-err-msg
I know that doesn't answer your URL issue, but it would seem a simpler/ tidier solution even if you still wanted to include the link. I prefer to just leave navigation out of notices. On Jan 29, 9:55 am, Rob Aldred <rald...@gmail.com> wrote: > Hi, > I want to be able to have a more detailed friendly message for users > when they register with an email address thats already taken. > > At the moment I have written a small validation method to produce what > I want, personally I dont like it because I've had to include modules > that shouldn't really be there (ActionController::UrlWriter and > ActionView::Helpers) > > I was considering extending the error_message_for method to check for > error messages on fields against a list stored in a constant then > replacing them in the errors array, but I dont really like that > either. > > Does anyone know of a plugin or any suggestions on how I could make > this cleaner? > Here's what I have so far. > > <pre> > class User < ActiveRecord::Base > include ActionController::UrlWriter > include ActionView::Helpers > > validate :unique_email_address > ... > > def unique_email_address > if self.class.find_by_email(email) > errors.add(:email, "The email address #{email} has already > been used. Please use a different email address or #{link_to('Sign > in',login_path)}.") > end > end > ... > end > > </pre> > > Thanks > --Rob -- 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-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.