Forum: Ruby on Rails Injecting Ruby code into a javascript file?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Tom H. (Guest)
on 2009-04-15 23:33
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
Philip H. (Guest)
on 2009-04-15 23:43
(Received via mailing list)
> 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.
Marnen L. (Guest)
on 2009-04-16 00:23
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
Tom H. (Guest)
on 2009-04-16 20:00
Thanks a lot!
Tom
Jason Arora (Guest)
on 2009-04-17 03:17
(Received via mailing list)
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
Shaun K. (Guest)
on 2009-04-17 12:13
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
This topic is locked and can not be replied to.