Использование значения базы данных в файле LESS в Rails
Я установил жемчужину менее-рельсов, так как мне не терпится воспользоваться предложениями LESS по манипулированию цветом. Мне нужно извлечь цвет из моей базы данных в качестве базового цвета моей темы и создать оттуда.
У меня есть статический CSS, и я переименовал его в styles.css.less, чтобы rails понимал меньшее расширение, чем кажется.
Следующее, что я попробовал, было также обернуть файл как erb, чтобы, надеюсь, разрешить обработку строковых литералов ruby перед отправкой в LESS и, в конечном итоге, выводить как действительный CSS (все еще у меня?)
Файл теперь называется style.css.less.erb. В то время как файл simple содержит действительный CSS, обработка документа работает. Как только я добавляю строковый литерал ruby, происходит сбой.
color: #{"#112233"};
В отладчике chrome ничего после этой строки не обрабатывается.
Что я делаю не так, и как мне делать то, что я пытаюсь сделать?
1 ответ
Как говорит Чоулетт в комментариях, вы должны использовать синтаксис erb: <%= "#112233" %>
Следующий шаг - получить это значение из БД. Если это значение цвета для всего приложения, возможно, вы ищете настройки в db solution. Для этого я использую gem https://github.com/huacnlee/rails-settings-cached. Ваш код результата будет выглядеть так
color: <%= Setting.foo_color %>
Если вы используете ресурсы на производстве, не забудьте перекомпилировать их после каждого изменения настроек.
И если это не параметр, а, вероятно, что-то специфическое для каждого пользователя, вы не можете использовать для этого файлы CSS приложения, но вы можете написать встроенный CSS в представлениях.