Как заставить Rails 3.1 использовать SASS (Over SCSS) по умолчанию? - PullRequest
59 голосов
/ 15 мая 2011

Трудно понять, как сделать SASS, а не SCSS, по умолчанию для таблиц стилей.

Я попытался создать файл sass_config.rb с этим:

Sass::Plugin.options[:syntax] = :sass
Sass::Plugin.options[:style] = :compressed

Я также попытался добавить это в файл environment.rb. В любом случае я получаю эту ошибку:

.../config/environment.rb:7:in `<top (required)>': 
  uninitialized constant Sass::Plugin (NameError)

Ответы [ 6 ]

74 голосов
/ 11 июня 2011

Для рельсов 3.1.rc4 вы можете установить конфигурацию:

config.sass.preferred_syntax = :sass

в application.rb файле

8 голосов
/ 10 сентября 2012

Я добавил следующее к config/environments/development.rb:

config.sass.preferred_syntax = :sass

Это добилось цели.

7 голосов
/ 15 мая 2011

Do require 'sass/plugin' и убедитесь, что он находится внизу после вашего Application.initialize! звонка.

2 голосов
/ 22 мая 2011

Как отметил @krainboltgreene, добавление следующей строки к config/application.rb

config.generators.stylesheet_engine = :sass

делает sass форматом по умолчанию для генераторов таблиц стилей.Однако, поскольку Rails 3.1.beta1 не поддерживает его, вы получаете следующие сообщения об ошибках

$ rails g scaffold user name:string
...
Could not find "scaffold.css.sass" in any of your source paths. Your current source paths are:
.../gems/railties-3.1.0.beta1/lib/rails/generators/rails/scaffold/templates
...

$ rails g controller users
...
Could not find "stylesheet.css.sass" in any of your source paths. Your current source paths are: 
.../gems/railties-3.1.0.beta1/lib/rails/generators/rails/assets/templates

Как видите, нельзя изменить формат по умолчанию, не сломав генераторы.Вместо этого вы можете вручную создавать дополнительные файлы * .css.sass, которые хорошо работают с файлами scss или без них.

2 голосов
/ 15 мая 2011

Я определенно предпочитаю sass, а также scss - вы рассматривали возможность использования компаса gem для всех ваших CSS и добавления preferred_syntax = :sass в config / compass.rb

У меня нет 'Я еще не протестировал это на rails 3.1, но он работает в 3.0.7

EDIT

В качестве шага устранения неполадок, что происходит, когда вы удаляете только первую строку кода из sass_config.rbчто у него просто есть второй?Обе эти строки вызывают ошибку?

1 голос
/ 07 июня 2011

Я нашел этот ответ где-то еще, точно не помню, но поместил его в config/initializers/sass.rb:

Sass::Engine::DEFAULT_OPTIONS[:load_paths].tap do |load_paths|
  load_paths << "#{Rails.root}/app/assets/stylesheets"
  load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
end

Я также предпочитаю синтаксис SASS (SCSS). Все, что вам нужно сделать, это вместо имен файлов mystylesheet.css.sass, и это просто работает. Вы даже можете переименовать ваш application.css в application.css.sass, изменить комментарии вверху на // вместо /* */ и использовать директивы require_* - все это работает, а затем вы можете использовать SASS в глобальном приложении таблицы стилей. Не будет, если вы используете компас в app/stylesheets.

Не требуется Sass::Plugin, он полностью отделен от нового движка ресурсов Rails, основанного на Sprockets. Он уже знает, как скомпилировать SASS для вас, и правильно управляет связыванием ресурсов.

Я полагаю, что новый выпуск Compass сделает это автоматически для проектов Rails 3.1+, использующих конвейер ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...