Использование значения базы данных в файле 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 в представлениях.

Другие вопросы по тегам