【问题标题】:How to use SASS, HAML, and CoffeeScript in Rails 3.2.x Engine?如何在 Rails 3.2.x 引擎中使用 SASS、HAML 和 CoffeeScript?
【发布时间】:2012-12-04 00:44:52
【问题描述】:
目前,我有一个使用 sass-rails 的 Rails 3.2.9 引擎。当我生成带有几个操作的控制器时,也会生成资产(即 javascript 和 CSS)。但是,Javascript 和 SASS 都是 *.js 和 *.css 文件。它们不是 CoffeeScript (*.js.coffee) 或 SASS (*.css.sass)。任何想法如何完成这项工作?
【问题讨论】:
标签:
ruby-on-rails-3
ruby-on-rails-3.2
rails-engines
【解决方案1】:
这是一个不同的解决方案,默认情况下将使用 coffee-rails 和 sass-rails gems - 还修复了 haml-rails。
我将此添加到我的 engine.rb 文件的顶部:
require 'rails'
require 'coffee-rails'
require 'sass/rails'
require 'haml-rails'
我所做的是检查这些文件的源代码,以了解它们在普通 Rails 应用程序中的工作方式。例如,在haml-rails 中,我查看了lib/haml-rails.rb 并看到了以下内容:
require 'haml'
require 'rails'
module Haml
module Rails
class Railtie < ::Rails::Railtie
if ::Rails.version.to_f >= 3.1
config.app_generators.template_engine :haml
else
config.generators.template_engine :haml
end
...
sass-rails (lib/sass/rails/railtie.rb) 和 coffee-rails (lib/coffee/rails/engine.rb) 存在类似文件。
【解决方案2】:
只需将--stylesheet_engine=sass --javascript_engine=coffee 附加到您的生成器命令(我假设rails g controller)。