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

标签 ruby-on-rails ruby coffeescript

我刚刚开始使用 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/

相关文章:

ruby-on-rails - 在 Rails 中使用 RSpec 测试清扫器

ruby - ruby irb 提示模式之间有什么区别?

angularjs - promise 解决后, View 中的数据未更新

ruby-on-rails - 架构最佳实践 : Is it ever OK to store duplicates of a record?

ruby-on-rails - Rails 如何在 textarea 上禁用 tinymce?

sql - Ruby on Rails Where 子句小于大于

javascript - removeClass 如果 addClass 单击?

ruby-on-rails - rails 4 - 在初始化器或使用它的模块中需要类 - 最佳实践

javascript - 为什么 cat.setName = setName 和 setName.apply pig, ['Babe' ] 的输出是一样的。甚至为什么有必要在代码中包含它们

coffeescript - 如何将 jest 与 CoffeeScript 和 ES6/ES2015 一起使用(例如通过 Babel)?