我刚刚开始使用 Ruby on Rails,我在从 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()
的函数:
cubes = alert math.cube 3
目前这是非常基础的。我想先舒服点。
这是一个名为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()
。
关于ruby-on-rails - 如何在 Rails 3 中导入 JavaScript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15825145/