开发者

external javascript file with embedded ruby

开发者 https://www.devze.com 2023-02-08 09:06 出处:网络
I\'m trying to embed some rails data in an external js file instead of placing it in a script tag in my .html.haml.How do I do this?I looked around and read up on .js.erb stuff, but I\'m stumped.I\'m

I'm trying to embed some rails data in an external js file instead of placing it in a script tag in my .html.haml. How do I do this? I looked around and read up on .js.erb stuff, but I'm stumped. I'm also confused about if/when I should be using .rjs at all for this. I'm using jquery if this helps. Thanks!

for more info, basically I'm trying to follow along Ryan Bate's railscast http://asciicasts.com/episodes/223-charts, but put all the graph information in an external js. He mentions that an ajax request should be made when the page is loaded, but I'm not 100% on how to do this.

So far, I've experimented doing the following:

in application.js:

$(document).ready(function(){   
   $.ajaxSetup({  
      'beforeSend': function (xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
   });
   $.ajax({ type: 'POST', url: '/graphs'}); 
});

graphs.js.erb (random stuff to see if it works):

$('.so开发者_运维技巧me_container').append('hello!');
$('h1').append('hello!');

this seems to work although the hello's appear after a brief delay, and i'm guessing embedded ruby will work too. however, if I start adding the graph stuff to this .js.erb it stops working (like data = 1). also it seems like a lot just to have a dynamic js file.


Edit: the 'hello's append in all views, so I must be doing something wrong :/ I only wanted it to append to the profile view.


Maybe you should put that js code in a partial and still use it as html: _myjavascript.html.erb (use javascript_tag in your partial).

You name your view as myview.js.erb when it should respond to a JS request (not HTML):

respond_to do |format|
  format.js { render 'myview' }
end
0

精彩评论

暂无评论...
验证码 换一张
取 消