如何在Rails 3.1 for CoffeeScript中使用选项“–bare”?

有人知道如何在Rails 3.1中使用此选项? 现在CoffeScript在每个文件上放置一个.call .call(this)函数,但我想删除它。

编辑:“ 无法找到变量”错误与Rails 3.1和Coffeescript “和” 模式为CoffeeScript模块 “有我想要的。 我将改变我的全局变量以使用@global范围。

我建议不要这样做。 由于某些原因,请参阅Pattern for CoffeeScript模块的答案。 (“使你的CoffeeScript代码与开箱即用的Rails 3.1不兼容”是另一个原因。)最好只使用

 window.a = b 

甚至

 @a = b 

当您尝试将某些内容导出到全局范围时,而不是a = b

在以前版本的Rails 3.1中,启用了bare编译。 这被归类为一个bug ,并在RC1中修复。

因此,虽然我强烈建议您不要这样做 ,但这里是如何重新打开裸编译:添加

 Tilt::CoffeeScriptTemplate.default_bare = true 

到你的environment.rb

我建议利用CoffeeScript的闭包并遵循CommonJS模块模式。 但有时,有时候,可以使用–bare选项。 在我的情况下,当渲染一个Jasmine规范助手时,我可以保持最高级别的东西,并利用所述Jasmine规范中的include Sprockets指令。

为此,我创建了“sprockets-blackcoffee”gem,您可以在这里了解它。 https://github.com/metaskills/sprockets-blackcoffee