2011-02-02 7 views
0

私は外部のjsファイルに.html.hamlのスクリプトタグを置くのではなく、いくつかのレールデータを埋め込むようにしています。これはどうすればいいですか?私は周りを見回して.js.erbのものを読んだが、私は困惑している。私はまた、これについて.rjsをまったく使用するべきかどうかについて、混乱しています。これが助けになるならjqueryを使っています。ありがとう!ルビーを埋め込んだ外部のjavascriptファイル

詳細については、基本的にRyan Bateのrailscast http://asciicasts.com/episodes/223-chartsに従うようにしていますが、グラフの情報はすべて外部のjsに入れてください。彼は、ページが読み込まれたときにajaxリクエストを行う必要があると言いますが、これを行う方法については100%ではありません。 (それが動作するかどうかを確認するためにランダムなものを)

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

graphs.js.erb:application.jsで

はこれまでのところ、私は次のようにやって実験してきた

$('.some_container').append('hello!'); 
$('h1').append('hello!'); 

これはうまくいくようですが、ちょっと待ってからこんにちはが表示されていて、組み込みのルビーもうまくいくと思います。しかし、私がこの.js.erbにグラフのものを追加し始めたら、それは働きません(data = 1のように)。また、動的なjsファイルを持つだけで多くのように思えます。


編集:「こんにちは者はすべてのビューに追加し、私は何か間違ったことをやっている必要があります/私はそれがプロファイルビューに追加したかったです。

答えて

0

おそらくあなたは部分的にそのjsコードを入れて、それでもhtml:_myjavascript.html.erb(部分的にjavascript_tagを使用)として使用するべきです。それはJS要求(ないHTML)に応答しなければならないとき

あなたはmyview.js.erbとして、あなたのビューに名前を付ける:

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

私はそのような部分的にそれを置くことについて考えていたが、それ一種の敗北のすべてのタブやものについて心配する必要はありません(私はhamlを使用しています).HTMLコードに埋め込みを持たないようにします。

関連する問題