Я не рекомендую менять цвет пользовательского интерфейса с помощью глобальной цветовой переменной Ruby.Основная причина: вы не можете перекомпилировать свои активы, так как каждый пользователь будет торговать цветом темы.Мое предложение: Реализуйте, сколько классов, которые переназначают значение $theme-colors
, как вам нужно, например, следующее:
# _variables.scss
$theme-colors: black; # default color
.blue-theme {
$theme-colors: blue;
}
.yellow-theme {
$theme-colors: yellow;
}
Наконец, в вашем application.html.erb
(или эквивалентном) вы меняете class-name
в соответствии спо предпочтению пользователя:
# apllication.html or equivalent
<body class="<%= @class_name %>">
</body>
Obs : если вы используете Rails.configuration
, действие одного пользователя торгует темой пользовательского интерфейса, торгуя темой для всех пользователей, вместо использования Rails.config
поместите эту опцию в session
, укажите current_user
и сохраните это предпочтение или сохраните эту информацию в вашей базе данных.