有人知道如何在Rails 3.1中使用此选项?
现在CoffeScript在每个文件上放置一个带.call(this)
的函数,但我想删除它。
编辑:
“Can't find variable” error with Rails 3.1 and Coffeescript”和“Pattern for CoffeeScript modules”拥有我想要的内容。我将更改我的全局变量以使用@global
范围。
答案 0 :(得分:20)
我建议不要这样做。由于某些原因,请参阅Pattern for CoffeeScript modules的答案。 (“使你的CoffeeScript代码与开箱即用的Rails 3.1不兼容”是另一个原因。)最好只使用
window.a = b
甚至
@a = b
当您尝试将某些内容导出到全局范围时,而不是a = b
。
在以前版本的Rails 3.1中,启用了bare
编译。这是classified as a bug,并在RC1中修复。
因此,虽然我强烈建议您不要这样做,但以下是如何重新启用裸编辑:添加
Tilt::CoffeeScriptTemplate.default_bare = true
到environment.rb
。
答案 1 :(得分:4)
我建议利用CoffeeScript的闭包并遵循CommonJS模块模式。但有时,有时候,可以使用--bare选项。在我的情况下,渲染一个Jasmine规范助手时,我可以保持最高级别的东西,并利用所述Jasmine规范中的include Sprockets指令。
为此,我创建了“sprockets-blackcoffee”宝石,您可以在这里了解它。 https://github.com/metaskills/sprockets-blackcoffee