# Application helper problema

**URL:** <https://www.ruby-forum.com/t/application-helper-problema/159694>\
**Category:** Rails\
**Created:** [February 7, 2009, 7:17am UTC](https://www.ruby-forum.com/t/application-helper-problema/159694 "2009-02-07T07:17:24Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [February 7, 2009, 7:17am UTC](https://www.ruby-forum.com/t/application-helper-problema/159694/1 "2009-02-07T07:17:24Z")

</div>

I am calling a function I made in application\_helper but when I try to  
call it it keeps saying method undefined. If I put the function in  
the controller it runs just fine. any ideas?

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [February 7, 2009, 8:30am UTC](https://www.ruby-forum.com/t/application-helper-problema/159694/2 "2009-02-07T08:30:34Z")

</div>

did you mean when you put it in your controller’s helper file, it works?

make sure you are using your helpers in your views, and not in your  
controller.

Chris H. wrote:

> I am calling a function I made in application\_helper but when I try to  
> call it it keeps saying method undefined. If I put the function in  
> the controller it runs just fine. any ideas?

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [February 7, 2009, 9:09am UTC](https://www.ruby-forum.com/t/application-helper-problema/159694/3 "2009-02-07T09:09:05Z")

</div>

Should have used Hamburger Helper.

I think application.rb doesn’t reload unless you restart the server.  
Maybe  
application\_helper is the same way

and it looks like this post agrees:

[Plugins - helper function is an "undefined method", Objects "can't be referred" - Rails - Ruby-Forum](http://www.ruby-forum.com/topic/155700)

On Fri, Feb 6, 2009 at 11:30 PM, Eddie S.  
\<removed\_email\_address@domain.invalid

> wrote:

> > the controller it runs just fine. any ideas?
> 
> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
> 
> >

–  
Available for Ruby on Rails development opportunities

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [February 7, 2009, 10:51am UTC](https://www.ruby-forum.com/t/application-helper-problema/159694/4 "2009-02-07T10:51:28Z")

</div>

That sounds strange. All controllers reload, therefore application  
controller does too, because it’s an abstract class.

Blog: [http://random8.zenunit.com/](http://random8.zenunit.com/)  
Learn rails: [http://sensei.zenunit.com/](http://sensei.zenunit.com/)

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [February 7, 2009, 7:28pm UTC](https://www.ruby-forum.com/t/application-helper-problema/159694/5 "2009-02-07T19:28:44Z")

</div>

OK, so you can only call functions in a controller that are in a  
model?

I have an app that does not have a model but I guess I can create one  
if need be.

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [February 7, 2009, 10:50am UTC](https://www.ruby-forum.com/t/application-helper-problema/159694/6 "2009-02-07T10:50:17Z")

</div>

Where are you trying to call it from? Helpers are for views

Blog: [http://random8.zenunit.com/](http://random8.zenunit.com/)  
Learn rails: [http://sensei.zenunit.com/](http://sensei.zenunit.com/)

On 07/02/2009, at 6:30 PM, Eddie S. \<rails-mailing-list@andreas-

---

<div class="post-metadata">

**Author:** ![bigdaddy71](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bbe5ce/32.png) [@bigdaddy71](https://www.ruby-forum.com/u/bigdaddy71)\
**Post date:** [February 7, 2009, 10:38pm UTC](https://www.ruby-forum.com/t/application-helper-problema/159694/7 "2009-02-07T22:38:29Z")

</div>

On Feb 7, 1:28 pm, Me [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> OK, so you can only call functions in a controller that are in a  
> model?

You can call methods from pretty much anywhere, but that is not the  
point. In Rails, you want to follow their MVC pattern to get the most  
of the framework.You want to call methods within the scope of where  
you are at.

The browser requests go from Dispatcher → Controller → View

The purpose of the controller is to get the request, maybe validate  
the user, then instantiate an object that will be rendered in the  
view. That’s it. Any logic about the specifics of how to instantiate  
the object should be handled by the model classes. So in that part,  
you are correct when you say “only call functions in a controller that  
are in a model”. You are making a call to instantiate an object that  
will be used in the view.

The model classes usually have a database back end but it does not  
have to be. It is common to have model classes for specialized reports  
for example, that have aggregation methods, etc. So you should create  
a model class for what you are trying to do, to separate those methods  
in their own domain.

Finally, the purpose of the Helper classes is to provide methods for  
the View. When you need to format something, etc. you put call methods  
in either the controller\_helper class or the generic application  
helper class.

Hope that helps.
