How to include a module in a model

I created a module MyModule “my_module.rb” and put in a lib folder in
my rails app.

In my User.rb model I call include MyModule.

When I try to use a method inside MyModule I get an “undefined method
error”. How do I include this module in the model?

Thanks

badnaam wrote:

I created a module MyModule “my_module.rb” and put in a lib folder in
my rails app.

In my User.rb model I call include MyModule.

When I try to use a method inside MyModule I get an “undefined method
error”. How do I include this module in the model?

What you described should work. Let’s see code.

Thanks

Best,
–Â
Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Sent from my iPhone

http://pastie.org/1110631

I suspect that after you require validation_group.rb you want to have
something like:

ActiveRecord::Base.class_eval { extend
ValidationGroup::ActiveRecord::ActsMethod }

You need to get the “validation_group” method into ActiveRecord::Base
and therefore User before you call it.

-Rob

On Aug 23, 2010, at 3:22 PM, badnaam wrote:

When I try to use a method inside MyModule I get an "undefined

Groups “Ruby on Rails: Talk” group.
To post to this group, send email to rubyonrails-
[email protected].
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
.

Rob B.
[email protected] http://AgileConsultingLLC.com/
[email protected] http://GaslightSoftware.com/

Here is the code…

http://pastie.org/1110631

Thanks

Rob,

Are you saying I need to do a

1 - require ‘validation_group’ in my User.rb

2 - Then add

ActiveRecord::Base.class_eval { extend
ValidationGroup::ActiveRecord::ActsMethod }
to my User.rb?

Thanks
On Aug 23, 12:44 pm, Rob B. [email protected]

On Aug 23, 2010, at 3:50 PM, badnaam wrote:

ActiveRecord::Base.class_eval { extend
ValidationGroup::ActiveRecord::ActsMethod }
to my User.rb?

Thanks

No, I don’t know what you “need” only what I “suspect” your code is
missing. Probably not in your user.rb, but in an initializer
somewhere. (config/initializers/validation_group.rb or in config/
environment.rb) If you’re modifying the plugin, you really need to
understand the Ruby hook methods (like extended() and included()) or
at least copy all the relevant bits when you’re cargo-culting a
solution.

-Rob

I created a module MyModule “my_module.rb” and put in a lib

Posted viahttp://www.ruby-forum.com/.

.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en
.

Rob B.
[email protected] http://AgileConsultingLLC.com/
[email protected] http://GaslightSoftware.com/

ouch. Cargo cult. a bit harsh. At some point we were all learning to
program. How we treat the newcomer says a lot about the Rails
community.

badnamm, I think what you’re trying to do might be satisfied by extend
not include.

see this article for more info.

http://railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/

dave

On Aug 23, 12:58 pm, Rob B. [email protected]