Oh, and I am not rendering request-specific data. To put it more directly, the data needed in this helper is in a database table. I just need to look it up in the table and then do some stuff related to it in the js file. I can do this right at precompile time. What alternatives are there?
On Tuesday, March 24, 2015 at 10:59:15 AM UTC-7, Neeraj Murarka wrote: > > Hi Daniel. > > Thanks very much for the response. The fact that they are precompiled at > deployment might explain why I have been finding it excruciatingly hard to > figure this out. > > If I went with the approach of adding a JS block into my html.erb file, it > would be slower, I suspect. But would it mean that all my helpers in > rubyland are now namespace visible? Now if I do this, wouldn't I have to > move the js file in question out of the folder that application.js is > including all js files from? > > My second question is probably more important. The logic needed in the > helper that I need in this js file is logic that is available right at > precompilation time. I know that .js.erb files can in fact use helpers, so > how does that work? Are these limited to js.erb files that are not > precompiled, or can precompiled ones also include "special" helpers that > are "executed" at precompilation time? Ideally, application.js is > precompiled and this helper is run at precompilation. If that's possible. > > Thanks! > > > > On Tuesday, March 24, 2015 at 12:13:05 AM UTC-7, Daniel Evans wrote: >> >> Hi Neeraj, >> >> You most serious problem you are facing is that js files included in >> application.js are not rendered in the context of your request. They are >> meant to be precompiled (meaning when you deploy your application they are >> all compiled only once so that each request for them is very fast) and >> loaded separately. >> >> There are a couple of ways around this, the easiest being adding a >> javascript block to your application.html.erb or bar.html.erb that renders >> that code instead. Another alternative would be to have your javascript >> call an API for that data. >> >> If you aren't trying to render request-specific data there are other >> alternatives. Is that the case? >> >> >> On Mon, Mar 23, 2015 at 7:34 PM, Neeraj Murarka <[email protected]> >> wrote: >> >>> Hello. >>> >>> I am having some trouble accessing a method "foo" I defined in a >>> controller. >>> >>> I was under the impression that if "foo" is in the controller that >>> renders bar.html.erb, then bar.html.erb can in fact see a method in this >>> controller provided I put the "helper_method: foo" notation in the >>> controller. I was able to verify that foo was in fact accessible in the >>> bar.html.erb file. >>> >>> The problem is I want to access foo in alpha.js.erb. My application.js >>> includes alpha.js (alpha.js.erb) implicitely because alpha.js.erb is in the >>> app/assets/javascripts and application.js has "//= require_tree .". >>> >>> But alpha.js.erb cannot see foo. I have no idea how to get my custom >>> ruby functions to become accessible in the js files. >>> >>> Would appreciate help. I scoured google for a few hours already and >>> could not find much on this. >>> >>> Thanks. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Talk" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/rubyonrails-talk/5a2078b6-c86e-4b39-b601-d242ceef804d%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/rubyonrails-talk/5a2078b6-c86e-4b39-b601-d242ceef804d%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Daniel Evans >> > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/ffc4da22-fc22-4dec-9686-a4b47e88755e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

