Как полностью отключить CoffeeScript в приложении Rails 3.1?

В момент создания нового контроллера Rails также генерирует файл .js.coffee для контроллера. Поскольку я не использую CoffeeScript, я хочу, чтобы Rails генерировали для меня файлы .js.

Достаточно ли прокомментировать камень coffee-rails, чтобы полностью отключить CofeeScript в приложении Rails 3.1?

Ответ 1

  • Комментарий gem "coffee-script" в вашем Gemfile
  • Используйте .js вместо .js.coffee для ваших файлов javascript.

Ответ 2

Не уверен, что это значение для Rails 3.1, но в 4 вы также должны установить javascript_engine to :js в application.rb, чтобы дать команду генераторам создать файлы .js вместо .js.coffee.

config.generators do |g|
  # .. other configuration ..
  g.javascript_engine :js
end

Ответ 3

Коэн и Гаурав Гупта имеют хорошие ответы!

Если вы хотите сделать эти изменения автоматически для каждого нового проекта Rails, вы можете использовать файл шаблона.

В ~/rails-template.rb

# Don't install coffeescript
gsub_file 'Gemfile', /^gem \'coffee-rails\'/ do
  "\# gem 'coffee-rails'"
end

# Mess with generators to get the behavior we expect around new files
# For these injections, indentation matters!
inject_into_file 'config/application.rb', after: "class Application < Rails::Application\n" do
  <<-'RUBY'
    config.generators do |g|
      # Always use .js files, never .coffee
      g.javascript_engine :js
    end
  RUBY
end

Тогда в ~/.railsrc

-m ~/.rails-template.rb

Теперь, когда вы запустите rails new, драгоценный камень coffeescript будет закомментирован, а новые контроллеры будут использовать .js вместо .coffee.

Протестировано на Rails 5.0.4, но я считаю, что он должен работать и для более ранних версий.


В стороне, Rails templates и генераторы вообще, являются супермощными. Я преподаватель, и мои ученики, как правило, создают 15-20 проектов рельсов через курс, а также предоставляют им хороший файл шаблонов с отладочными драгоценными камнями, тестирование стиля спецификаций и т.д. - это огромное время. Конечно, после того, как они внесли свои изменения, сами. Если вам интересно, мой личный .rails-template.rb на GitHub.

Ответ 4

Примечание для Rails 4, или если вы используете "turbolinks", "uglifier" или любой другой вид драгоценного камня, который требует, чтобы сервер интерпретировал javascript, также прокомментируйте их.

Ответ 5

У меня была эта проблема, поскольку я использую codekit для компиляции моего coffeescript.

Я обошел его, переименовав папку "активы/кофе" в "активы/кафе", поэтому рельс не нашел его.

Изменить: что работает (и ТОЛЬКО вещь, которая работает для меня, вышеприведенный ответ не работает) заключается в том, чтобы добавить отдельную папку "Приложение/Кофе" и установить ее для компиляции в папку assets/javascript. Если он находится в каталоге ресурсов, рельсы найдут его независимо от имени.