Forum: Ruby on Rails Overloading #initialize in a model

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Nick (Guest)
on 2008-11-01 18:13
(Received via mailing list)
I'm using WhinyProtectedAttributes:
http://henrik.nyh.se/2007/10/whiny-protected-attributes

Say I have this model:

class Person < ActiveRecord::Base
  attribute_accessible :name
end

If I then create a Person with an invalid attribute, an exception is
raised. For example:
  Person.new :name => 'Bob', :asdf => 'asdf'

What I'd like to do is, in the Person model, modify the hash of
attributes before they're set. This is what I came up with:

class Person < ActiveRecord::Base
  attribute_accessible :name

  def initialize(attribs = {})
    attribs_that_exist = AccessibleModelAttributes.extract self.class,
attribs
    super attribs_that_exist
  end
end

Am I on the right track? Cheers,
Nick
This topic is locked and can not be replied to.