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

时间:2011-05-23 15:26:04

标签: ruby-on-rails coffeescript

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

编辑: “Can't find variable” error with Rails 3.1 and Coffeescript”和“Pattern for CoffeeScript modules”拥有我想要的内容。我将更改我的全局变量以使用@global范围。

2 个答案:

答案 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