# RJS where to put helper method?

**URL:** <https://www.ruby-forum.com/t/rjs-where-to-put-helper-method/99160>\
**Category:** Rails\
**Created:** [July 20, 2006, 6:43pm UTC](https://www.ruby-forum.com/t/rjs-where-to-put-helper-method/99160 "2006-07-20T18:43:09Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![reynardmh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b782af/32.png) [@reynardmh](https://www.ruby-forum.com/u/reynardmh)\
**Post date:** [July 20, 2006, 6:43pm UTC](https://www.ruby-forum.com/t/rjs-where-to-put-helper-method/99160/1 "2006-07-20T18:43:09Z")

</div>

Hi,  
If I want to have helper method for my rjs, where’s the best place to  
put  
it?

so for example:  
— bla.rjs:  
page.replace\_html …  
page.visual\_effect …

— somewhere: (currently I put in application\_helper.rb)  
def replace\_with\_effect(page)  
page.replace\_html …  
page.visual\_effect …  
end

— bla.rjs:  
replace\_with\_effect page

and is there a way to define the helper so we don’t have to pass the  
page  
into the function everytime?

thanks,

- reynard

---

<div class="post-metadata">

**Author:** ![reynardmh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b782af/32.png) [@reynardmh](https://www.ruby-forum.com/u/reynardmh)\
**Post date:** [July 23, 2006, 5:48am UTC](https://www.ruby-forum.com/t/rjs-where-to-put-helper-method/99160/2 "2006-07-23T05:48:10Z")

</div>

So no one has any input on this?  
I’m sure you all needs it right?

---

<div class="post-metadata">

**Author:** ![reynardmh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b782af/32.png) [@reynardmh](https://www.ruby-forum.com/u/reynardmh)\
**Post date:** [July 23, 2006, 7:28am UTC](https://www.ruby-forum.com/t/rjs-where-to-put-helper-method/99160/3 "2006-07-23T07:28:36Z")

</div>

On 7/20/06, Reynard H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> def replace\_with\_effect(page)  
> page.replace\_html …  
> page.visual\_effect …  
> end
> 
> — bla.rjs:  
> replace\_with\_effect page
> 
> and is there a way to define the helper so we don’t have to pass the page  
> into the function everytime?

What is wrong with having to pass page? Otherwise page would have to be  
global.

Peter

---

<div class="post-metadata">

**Author:** ![reynardmh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b782af/32.png) [@reynardmh](https://www.ruby-forum.com/u/reynardmh)\
**Post date:** [July 24, 2006, 7:20am UTC](https://www.ruby-forum.com/t/rjs-where-to-put-helper-method/99160/4 "2006-07-24T07:20:02Z")

</div>

thanks for the reply 🙂  
I was just interested to know if that’s what everyone does.

- reynard

---

<div class="post-metadata">

**Author:** ![reynardmh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b782af/32.png) [@reynardmh](https://www.ruby-forum.com/u/reynardmh)\
**Post date:** [July 24, 2006, 12:15pm UTC](https://www.ruby-forum.com/t/rjs-where-to-put-helper-method/99160/5 "2006-07-24T12:15:59Z")

</div>

Actually, methods defined in your helpers are available on the page  
object.

module ApplicationHelper  
def say\_hello  
page.alert “Hello!”  
end  
end

Then in an RJS template you can use page.say\_hello

[http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods.html](http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods.html)

-Jonathan.

---

<div class="post-metadata">

**Author:** ![reynardmh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b782af/32.png) [@reynardmh](https://www.ruby-forum.com/u/reynardmh)\
**Post date:** [July 24, 2006, 4:24pm UTC](https://www.ruby-forum.com/t/rjs-where-to-put-helper-method/99160/6 "2006-07-24T16:24:09Z")

</div>

That’s exactly the behavior I wanted, and it’s already built in. I  
should  
have read the documentation more thoroughly 🙂  
Thanks a lot!

- reynard
