Как использовать SASS в качестве обработчика шаблонов для представлений в Rails 3? - PullRequest
2 голосов
/ 18 января 2012

У меня есть ситуация, когда я генерирую таблицы стилей на основе информации в базе данных.Это означает, что у меня есть views / users / show.css.erb, который содержит код, подобный следующему:

a {
  color: <%= @user.favorite_color %>;
}

Достаточно справедливо, отлично работает с response_to {| f |f.css} в моем контроллере.Однако теперь я хотел бы использовать некоторые нахальные функции SASS, такие как светлый, темный и т. Д. В моем CSS, поэтому я бы хотел, чтобы SASS проанализировал мой взгляд.Однако я не могу понять, как зарегистрировать SASS в качестве обработчика шаблонов в моих представлениях без особых уродливых хаков.Я просто не понимаю, как это работает.Кто-нибудь когда-нибудь пробовал это?

Я пробовал включить модуль функций SASS, но безрезультатно.

1 Ответ

2 голосов
/ 18 января 2012

Я планировал сделать то же самое для динамических пользовательских тем некоторое время назад. Тогда я нашел ответ из списка рассылки *1002* на вопрос, похожий на ваш, от Натана Вейзенбаума (автора SASS), который вернул меня на прямую и узкую:

18 марта, 11:46 Натан Вейзенбаум написал:

Есть причина, по которой Sass не разрешает динамический доступ к коду Rails - смотрите секция Sass http://haml.hamptoncatlin.com/docs/rdoc/files/FAQ.htmlfor краткое обсуждение. Sass также довольно медленный, так как он компилируется только один раз, так что это, вероятно, слишком медленно для производственной среды.

Ссылка больше не работает, но в FAQ SASS есть только один раздел с именем Могу ли я использовать переменную из моего контроллера в моем файле Sass? , которая отвечает на вопрос dynamic :

Если вам действительно нужно скомпилировать Sass при каждом запросе, сначала убедитесь, что у вас настроено адекватное кэширование. Затем вы можете использовать Sass :: Engine для визуализации кода, используя опцию: custom для передачи данных, к которым можно получить доступ из ваших функций Sass.

Таким образом, в общем случае SASS не предназначен для динамической генерации CSS при каждом запросе. Скорее, он предназначен для использования в качестве решения перед компиляцией для создания статических CSS-файлов.

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