Доступ к моделям или помощникам Rails в SCSS - PullRequest
8 голосов
/ 16 июня 2011

Я использую Rails 3.1 и SCSS в Asset Pipeline. Есть ли какой-либо доступ к помощникам Rails или данным контроллера в файле SCSS? Что-то вроде ...

#main {
   background-color: #{current_user.preferences.background_color}
}

Я знаю, что могу установить свои собственные $variables, но я не уверен, как бы я заполнил их из данных контроллера.

Ответы [ 2 ]

8 голосов
/ 03 июля 2011

Насколько я знаю, это не то, для чего был разработан Asset Pipeline.

Подумайте об этом, у вас есть rake assets:precompile команда для преобразования всех ваших .scss.erb файлов в статический .css файл.

Итак, как вы могли когда-либо получить доступ к переменным типа current_user из этого .scss.erb файла?

По-моему, невозможно получить переменные контроллера в .scss.erb или .coffee.erb.

7 голосов
/ 16 июня 2011

Вы можете связать процессоры шаблонов с помощью Rails 3.1, так что вы можете сделать my.css.scss.erb, а затем встроить ваши переменные следующим образом:

$user-background-color: <%= current_user.preferences.background_color %>

Затем вы можете использовать переменные Sass в вашей SCSS.

Я использовал другой подход к решению этой проблемы для Rails 3.0: Использование SASS с заданными пользователем цветами

...