# Dynamic javascript

**URL:** <https://discuss.rubyonrails.org/t/dynamic-javascript/53892>\
**Category:** rubyonrails-talk\
**Created:** [August 26, 2010, 7:49am UTC](https://discuss.rubyonrails.org/t/dynamic-javascript/53892 "2010-08-26T07:49:55Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![CU1](https://avatars.discourse-cdn.com/v4/letter/c/8491ac/32.png) [@CU1](https://discuss.rubyonrails.org/u/CU1)\
**Post date:** [August 26, 2010, 7:49am UTC](https://discuss.rubyonrails.org/t/dynamic-javascript/53892/1 "2010-08-26T07:49:55Z")

</div>

I'm coming from a long period of CakePHP development. One of the more useful features of that framework was the ability to add any inline javascript in a view, with dynamic php codeblock-generated output (variables, framework generated URLs, etc), to a javascript buffer, and then have CakePHP render it inside an inline script tag just before the \</body\>, or, my preferred solution, have CakePHP automatically condense the buffer and output it to a uniquely- named .js file on the filesystem. This file could then obviously be cached by the browser, and was recreated whenever the structure of the view/javascript changed.

Is there a similar feature in Rails, or a Gem that offers this functionality? Otherwise, what would be the best practice in Rails for unavoidable inline javascript output?

Many thanks

---

<div class="post-metadata">

**Author:** ![11155](https://avatars.discourse-cdn.com/v4/letter/1/d26b3c/32.png) [@11155](https://discuss.rubyonrails.org/u/11155)\
**Post date:** [August 26, 2010, 11:53am UTC](https://discuss.rubyonrails.org/t/dynamic-javascript/53892/2 "2010-08-26T11:53:30Z")

</div>

CU wrote:

> I'm coming from a long period of CakePHP development. One of the more useful features of that framework was the ability to add any inline javascript in a view, with dynamic php codeblock-generated output (variables, framework generated URLs, etc), to a javascript buffer, and then have CakePHP render it inside an inline script tag just before the \</body\>, or, my preferred solution, have CakePHP automatically condense the buffer and output it to a uniquely- named .js file on the filesystem. This file could then obviously be cached by the browser, and was recreated whenever the structure of the view/javascript changed.
> 
> Is there a similar feature in Rails, or a Gem that offers this functionality?

Well, there's content\_for, for starters. I think Rails provides some other methods for combining JS, but I'm not certain.

> Otherwise, what would be the best practice in Rails for unavoidable inline javascript output?

Just don't write inline JS to start with!

Rails 3 is more helpful in this respect than Rails 2, or so I'm told.

> Many thanks

Best,

---

<div class="post-metadata">

**Author:** ![CU1](https://avatars.discourse-cdn.com/v4/letter/c/8491ac/32.png) [@CU1](https://discuss.rubyonrails.org/u/CU1)\
**Post date:** [August 26, 2010, 12:52pm UTC](https://discuss.rubyonrails.org/t/dynamic-javascript/53892/3 "2010-08-26T12:52:09Z")

</div>

I thought of content\_for literally 15 seconds after clicking send on this post 🙂

I'm using Rails3, and you're right, there is a heavy focus on moving away from inline JS. Perhaps I should move away from Cake's bad practices, rather than try to find equivalents for them in Rails 🙂

Thanks for the help!
