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,

Here is the code..

http://pastie.org/1110631

Thanks

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

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

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

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

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

http://pastie.org/1110631

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-Koserhttp://www.marnen.org
mar...@marnen.org

Sent from my iPhone

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

--
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-
talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com
.
For more options, visit this group athttp://groups.google.com/group/rubyonrails-talk?hl=en
.

Rob Biedenharn
R...@AgileConsultingLLC.com http://AgileConsultingLLC.com/
r...@GaslightSoftware.com http://GaslightSoftware.com/

--
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-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Rob Biedenharn
Rob@AgileConsultingLLC.com http://AgileConsultingLLC.com/
rab@GaslightSoftware.com 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