Yes. In your module you've defined an instance method not a class 
method.

But this:

>   class CarePhase < ActiveRecord::Base
>     include ModelHelper
> 
>     pretend_helper("hi!")

Is the class trying to call the method, which fails because the class 
doesn't know about the 'pretend_helper' method.


What you have would work fine if you did this:

CarePhase.new.pretend_helper('hi')


If you really do want a class method, try changing the method definition 
in PretendHelper to:

def self.pretend_helper(msg)
  puts msg
end

And then you would be fine to call:

CarePhase.pretend_helper('hi')

Hope that helps.

-- Josh
http://iammrjoshua.com


Roy Pardee wrote:
> Ah yes--I see that thread now--thanks!
> 
> I'm on an airplane & can't this minute check out the plugin Brandon 
> recommends, so I figured I'd try out the module approach you mention & 
> am having trouble.
> 
> I've got a file /lib/model_helper.rb w/the following contents:
> 
>   module ModelHelper
>     def pretend_helper(msg)
>       puts(msg)
>     end
>   end
> 
> And a model in care_phase.rb that starts out like:
> 
>   class CarePhase < ActiveRecord::Base
>     include ModelHelper
> 
>     pretend_helper("hi!")
> 
> If I then open the console & type CarePhase.new I get this here:
> 
>   Loading development environment (Rails 2.0.2)
>   >> CarePhase.new
>   NoMethodError: undefined method `pretend_helper' for CarePhase(id: 
> integer, name: string):Class
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/base.rb:1532:in
>  
> `method_missing'
>           from C:/railsapps/collabtrac/app/models/care_phase.rb:9
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in
>  
> `load_without_new_constant_marking'
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in
>  
> `load_file'
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in
>  
> `new_constants_in'
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:202:in
>  
> `load_file'
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:94:in
>  
> `require_or_load'
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:248:in
>  
> `load_missing_constant'
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:453:in
>  
> `const_missing'
>           from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:465:in
>  
> `const_missing'
>           from (irb):1
> 
> 
> Can anybody say what I'm doing wrong?
> 
> Thanks!
> 
> -Roy

-- 
Posted via http://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 [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
-~----------~----~----~----~------~----~------~--~---

Reply via email to