Ответ 1
- Комментарий
gem "coffee-script"
в вашем Gemfile - Используйте .js вместо .js.coffee для ваших файлов javascript.
В момент создания нового контроллера Rails также генерирует файл .js.coffee
для контроллера. Поскольку я не использую CoffeeScript, я хочу, чтобы Rails генерировали для меня файлы .js
.
Достаточно ли прокомментировать камень coffee-rails
, чтобы полностью отключить CofeeScript в приложении Rails 3.1?
gem "coffee-script"
в вашем GemfileНе уверен, что это значение для Rails 3.1, но в 4 вы также должны установить javascript_engine
to :js
в application.rb
, чтобы дать команду генераторам создать файлы .js
вместо .js.coffee
.
config.generators do |g|
# .. other configuration ..
g.javascript_engine :js
end
Коэн и Гаурав Гупта имеют хорошие ответы!
Если вы хотите сделать эти изменения автоматически для каждого нового проекта 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.
Примечание для Rails 4, или если вы используете "turbolinks", "uglifier" или любой другой вид драгоценного камня, который требует, чтобы сервер интерпретировал javascript, также прокомментируйте их.
У меня была эта проблема, поскольку я использую codekit для компиляции моего coffeescript.
Я обошел его, переименовав папку "активы/кофе" в "активы/кафе", поэтому рельс не нашел его.
Изменить: что работает (и ТОЛЬКО вещь, которая работает для меня, вышеприведенный ответ не работает) заключается в том, чтобы добавить отдельную папку "Приложение/Кофе" и установить ее для компиляции в папку assets/javascript. Если он находится в каталоге ресурсов, рельсы найдут его независимо от имени.