Ruby on rails 如何在Rails 3中导入JavaScript文件?

Ruby on rails 如何在Rails 3中导入JavaScript文件?,ruby-on-rails,ruby,coffeescript,Ruby On Rails,Ruby,Coffeescript,我刚刚开始使用RubyonRails,从HTML调用JavaScript函数时遇到了一些困难。我使用的是Rails 3.2.13、Ruby 1.9.3和RubyMine 5.0.2 我在“app/assets/javascripts/”中有一个名为“home.js.coffee”的CoffeeScript文件,它显然编译为同一文件夹中的“application.js”。在“app/views/home/”中,我有主页“index.HTML.erb”的HTML文件。我在“home.js.coffe

我刚刚开始使用RubyonRails,从HTML调用JavaScript函数时遇到了一些困难。我使用的是Rails 3.2.13、Ruby 1.9.3和RubyMine 5.0.2

我在“app/assets/javascripts/”中有一个名为“home.js.coffee”的CoffeeScript文件,它显然编译为同一文件夹中的“application.js”。在“app/views/home/”中,我有主页“index.HTML.erb”的HTML文件。我在“home.js.coffee”中有一个函数,名为
cubes()

这是目前最基本的。我想先舒服一点

这是一个名为
math
的对象:

math =
    cube: (x) -> x* square x
我在
index.html.erb
中创建了一个按钮,理论上应该调用这个函数:

<button onclick="cubes()">Try it</button>
试试看

问题是如何让它找到JavaScript文件。index.html的头部需要什么?application.html的头部需要包含什么?

问题是函数位于另一个作用域中。如果使用
-b
选项编译CoffeeScript,将使函数全局可用,但简单的解决方案是:

root = exports ? this
root.cubes = -> alert math.cube 3

然后,您可以从HTML调用
cubes()

甚至可以使用任何其他js库,如prototype,但这甚至不是问题,建议应该在问题上,而不是答案上
root = exports ? this
root.cubes = -> alert math.cube 3