Rails 3.1でcoffeescript、jQuery、およびスプロケットを使用すると、coffeescriptファイルは次のようなブロックにコンパイルされます。
(function() {
var a;
var b;
var c;
foo = function() {
alert("foo");
}
bar = function() {
alert("bar");
}
}).call(this);
これにより、関数fooとbarがグローバルスコープから外れるように見えるため、barはfooで呼び出すことができますが、どちらもhtmlコードから呼び出すことはできません。select onchange要素からfooを呼び出そうとすると、「変数が見つかりません:foo」が表示されます。
現在の回避策は、グローバルに使用可能なすべての関数を.jsファイルに移動することです。しかし、これを行う正しい方法は何ですか?
ありがとう