# Possible to restrict a helper to a view?

**URL:** <https://www.ruby-forum.com/t/possible-to-restrict-a-helper-to-a-view/123843>\
**Category:** Rails\
**Created:** [December 21, 2007, 7:37am UTC](https://www.ruby-forum.com/t/possible-to-restrict-a-helper-to-a-view/123843 "2007-12-21T07:37:32Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![vince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b5e925/32.png) [@vince](https://www.ruby-forum.com/u/vince)\
**Post date:** [December 21, 2007, 7:37am UTC](https://www.ruby-forum.com/t/possible-to-restrict-a-helper-to-a-view/123843/1 "2007-12-21T07:37:32Z")

</div>

Right now I have two controllers:

courses\_controller.rb  
events\_controller.rb

They each, of course, have their own helpers:

courses\_helper.rb  
events\_helper.rb

Is it possible to create a helper method with the same name in these  
two helpers such that they are called by the corresponding view?

Basically I want:

\<%= meets\_on Schedule.find(:first) %\> in courses/index.html.erb to  
call meets\_on in courses\_helper.rb and

\<%= meets\_on Schedule.find(:first) %\> in events/index.html.erb to  
call meets\_on in events\_helper.rb.

I thought that’s what would happen, but it turns out that the meets\_on  
method from events\_helper.rb gets called all the time.

---

<div class="post-metadata">

**Author:** ![vince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b5e925/32.png) [@vince](https://www.ruby-forum.com/u/vince)\
**Post date:** [December 21, 2007, 7:46am UTC](https://www.ruby-forum.com/t/possible-to-restrict-a-helper-to-a-view/123843/2 "2007-12-21T07:46:18Z")

</div>

The helpers are unique to the controllers. Two methods defined in two  
helpers should not conflict with or override each other. Are you perhaps  
including EventsHelper in courses?

On Dec 21, 2007 5:06 PM, vince [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I thought that’s what would happen, but it turns out that the meets\_on  
> method from events\_helper.rb gets called all the time.
> 
> >

–  
Ryan B.

> **[frozenplague.net](http://www.frozenplague.net)**
>
> This domain may be for sale!

---

<div class="post-metadata">

**Author:** ![vince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b5e925/32.png) [@vince](https://www.ruby-forum.com/u/vince)\
**Post date:** [December 22, 2007, 6:47pm UTC](https://www.ruby-forum.com/t/possible-to-restrict-a-helper-to-a-view/123843/3 "2007-12-22T18:47:03Z")

</div>

I could have sworn that helpers are unique to controllers too. To  
test it, I created a new project from scratch with just two  
controllers for courses and events that created two helpers  
courses\_helper.rb and events\_helper.rb. I put in a very simple method  
in each:

courses\_helper.rb -  
module CoursesHelper  
def my\_helper  
“hello courses”  
end  
end

events\_helper.rb -  
module EventsHelper  
def my\_helper  
“hello events”  
end  
end

Then in views/courses/index.html.erb I put in just one line -  
\<%= my\_helper %\>

Now when I go to [http://localhost:3000/courses](http://localhost:3000/courses) I see this:  
hello events

Can someone tell me what I’m doing wrong? I put up the sample project  
here -  
[http://brainassembly.org/helper\_trouble](http://brainassembly.org/helper_trouble)

The 3 files I mentioned above are here -  
[http://brainassembly.org/helper\_trouble/app/views/courses/index.html.erb](http://brainassembly.org/helper_trouble/app/views/courses/index.html.erb)  
[http://brainassembly.org/helper\_trouble/app/helpers/courses\_helper.rb](http://brainassembly.org/helper_trouble/app/helpers/courses_helper.rb)  
[http://brainassembly.org/helper\_trouble/app/helpers/events\_helper.rb](http://brainassembly.org/helper_trouble/app/helpers/events_helper.rb)

The whole project can be downloaded here -  
[http://brainassembly.org/helper\_trouble.zip](http://brainassembly.org/helper_trouble.zip)

Thanks for any help!

---

<div class="post-metadata">

**Author:** ![vince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b5e925/32.png) [@vince](https://www.ruby-forum.com/u/vince)\
**Post date:** [December 22, 2007, 8:27pm UTC](https://www.ruby-forum.com/t/possible-to-restrict-a-helper-to-a-view/123843/4 "2007-12-22T20:27:19Z")

</div>

haha. thanks. it works now 🙂

i guess i was thinking that something like this would be in  
application\_helper.rb but good to know!

On Dec 22, 2:09 pm, Nathan E. \<rails-mailing-l…@andreas-

---

<div class="post-metadata">

**Author:** ![vince](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/b5e925/32.png) [@vince](https://www.ruby-forum.com/u/vince)\
**Post date:** [December 22, 2007, 8:09pm UTC](https://www.ruby-forum.com/t/possible-to-restrict-a-helper-to-a-view/123843/5 "2007-12-22T20:09:34Z")

</div>

You may want to look at “application.rb” because it will answer your  
question. Note the line in that file:

helper :all # include all helpers, all the time

You might guess what that does 😉

Remove that line and all will be well.
