Forum: Ruby on Rails Mixin problems

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.
Max W. (Guest)
on 2007-08-01 00:40
I'm trying to add a mixin i wrote (ModelExtensions module in
lib/model_extensions.rb) to ActiveRecord::Base so that i can use the
methods in it in all my classes.  (well actually there's only a single
method in there at the moment)

I've added this to environment.rb (right at the  bottom):

require 'model_extensions'
ActiveRecord::Base.send(:extend, ModelExtensions)

And the web server starts ok.  But the mixin just doesn't seem to work -
I get a "missing method" message.

So, i explicitly added the mixin to the required classes, with

require 'model_extensions'

at the top of the model file.  Still no joy.  Modules in lib should work
shouldn't they?  Can anyone see what i'm doing wrong?

thanks in advance
David C. (Guest)
on 2007-08-01 07:23
(Received via mailing list)
On 7/31/07, Max W. <removed_email_address@domain.invalid> wrote:
>
> I'm trying to add a mixin i wrote (ModelExtensions module in
> lib/model_extensions.rb) to ActiveRecord::Base so that i can use the
> methods in it in all my classes.  (well actually there's only a single
> method in there at the moment)
>
> I've added this to environment.rb (right at the  bottom):
>
> require 'model_extensions'
> ActiveRecord::Base.send(:extend, ModelExtensions)

Is the method supposed to be a class method or an instance method? If
it's supposed to be and instance method, try include instead of
extend:

ActiveRecord::Base.send(:include, ModelExtensions)
Max W. (Guest)
on 2007-08-01 13:07
David C. wrote:

> Is the method supposed to be a class method or an instance method? If
> it's supposed to be and instance method, try include instead of
> extend:
>
> ActiveRecord::Base.send(:include, ModelExtensions)

That's fixed it!  Thanks very much - i didn't appreciate the subtleties
when i blindly copied someone's example code (a recurring problem for me
with learning rails actually).

cheers!
David C. (Guest)
on 2007-08-01 19:59
(Received via mailing list)
On 8/1/07, Max W. <removed_email_address@domain.invalid> wrote:
> when i blindly copied someone's example code (a recurring problem for me
> with learning rails actually).
>
> cheers!

Cool - glad to help.

Good luck!
David
This topic is locked and can not be replied to.