Injecting Ruby code into a javascript file?


#1

Hi,

as far as I know it’s possible to inject Ruby code into javascript code
if the javascript code is included in a view/page.

But is this also possible when the javascript code is in a separate .js
file that is located in the folder “public/javascripts”?

Thanks for your help!
Tom


#2

as far as I know it’s possible to inject Ruby code into javascript
code
if the javascript code is included in a view/page.

But is this also possible when the javascript code is in a
separate .js
file that is located in the folder “public/javascripts”?

No. The files in public/javascripts never go through Rails. You
could always create a controller/view to generate JS files though and
then treat them similarly.

Or consider setting some initial JS objects or JSON strings that your
JS methods can look at when doing their thing.


#3

Thanks a lot!
Tom


#4

Philip H. wrote:
[…]

Or consider setting some initial JS objects or JSON strings that your
JS methods can look at when doing their thing.

If you do it this way, the browser can cache the JS and not hammer your
server. I highly recommend this approach rather than dynamically
generating JS.

Best,

Marnen Laibow-Koser
http://www.marnen.org
removed_email_address@domain.invalid


#5

Philip H. wrote:

as far as I know it’s possible to inject Ruby code into javascript
code
if the javascript code is included in a view/page.

But is this also possible when the javascript code is in a
separate .js
file that is located in the folder “public/javascripts”?

No. The files in public/javascripts never go through Rails. You
could always create a controller/view to generate JS files though and
then treat them similarly.

Or consider setting some initial JS objects or JSON strings that your
JS methods can look at when doing their thing.

Alternatively, assign the ruby code to a JS variable in the appropriate
view/page, then you can use this variable freely in the
public/javascripts script.

Just make sure it is assigned before it will be used


#6

I think this is what you are looking for:

generate dynamic javascripts in the javascripts/ folder:
http://railscasts.com/episodes/88-dynamic-select-menus

You can cache the JS with standard Rails caching mechanisms. Here is
how:
http://railscasts.com/episodes/89-page-caching