2011-05-23 8 views
12

Кто-то знает, как я могу использовать этот параметр в Rails 3.1? Теперь CoffeScript помещает функцию с .call(this) на каждый файл, но я хочу удалить это.Как использовать параметр «--bare» в Rails 3.1 для CoffeeScript?

EDIT: "Can't find variable” error with Rails 3.1 and Coffeescript" и "Pattern for CoffeeScript modules" есть, что я хочу. Я изменю свои глобальные вары, чтобы использовать область @global.

+0

В значительной степени зависит от того, какой драгоценный камень вы используете для компиляции CoffeeScript. –

+0

'gem 'coffee-script'' standard in Rails 3.1 –

ответ

20

Я бы рекомендовал не делать этого. См. Мой ответ на Pattern for CoffeeScript modules по некоторым причинам. («Создание код CoffeeScript несовместим с вне коробки Rails 3.1» является еще одной причиной.) Лучше всего использовать

window.a = b 

или даже

@a = b 

вместо a = b, когда вы» re пытается экспортировать что-то в глобальную область.

В предыдущих версиях Rails 3.1, bare была включена компиляция. Это было classified as a bug и зафиксировано в RC1.

Так что пока я настоятельно рекомендую вам не делать этот, вот как превратить голый сборник обратно: Добавить

Tilt::CoffeeScriptTemplate.default_bare = true 

к вашим environment.rb.

+0

Да, я согласен. Я начинаю новый проект, поэтому я хочу начать с правильного пути, я буду следовать вашей стратегии. Спасибо :) –

+1

Согласен, если у вас есть только некоторые файлы coffeescript, но если вы используете файл coffeescript для каждого класса/объекта, который вы делаете, вы не хотите определять глобальную переменную для каждого из них. +1 в любом случае для ответа – makevoid

4

Я рекомендую воспользоваться закрытием CoffeeScript и следить за подключением модуля CommonJS. Но иногда, иногда, вполне нормально использовать опцию --bare. В моем случае, при оказании помощника Jasmine spec, чтобы я мог держать вещи на верхнем уровне, а также воспользоваться включенной директивой Sprockets в спецификациях Jasmine.

С этой целью я создал драгоценный камень «sprockets-blackcoffee», о котором вы можете узнать здесь. https://github.com/metaskills/sprockets-blackcoffee

+1

Теперь я понимаю, что все зависит от точки зрения и вида проекта. Как и в вашем случае, я согласен. :) –

+0

Очень изящный. За последние несколько дней ваш материал сильно вырос, так как я использую minitest и CoffeeScript в Rails 3.2 ... Приветствия! :-) –