I’m having some trouble with some seemingly basic OO stuff with one of
my AR::Base descendants.
I ended up creating a custom initialize method that takes two parameters
an integer and the standard AR attributes hash, like so:
def initialize(user_id, attributes = nil)
In another part of my application, I was calling “clone” on one of these
objects and it gave me an incorrect number of arguments error. I
figured out it was because of the fact that my initialize expects 1
argument no matter what.
As soon as I provided a default value for user_id in the argument list
above, the call to clone was fine - I assume since now my initialization
didn’t require any arguments at all.
But this is somewhat disturbing. I was under the impression that I
would still have access to the regular initialize(attributes = nil)
method that I get from ActiveRecord::Base. Why is it not available?
Doesn’t this imply that I can’t have multiple constructors for an AR
I tried to add
def initialize(attributes = nil)
to my object and I still can’t instantiate it just running “new” (no
Thanks for any help.