Injecting Ruby code into a javascript file?

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

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.

Thanks a lot!
Tom

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
[email protected]

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

I think this is what you are looking for:

generate dynamic javascripts in the javascripts/ folder:

You can cache the JS with standard Rails caching mechanisms. Here is
how: