Ruby on rails 不同用户的动态样式
我需要每个用户的动态样式。问题是,可以在两个主题之间进行选择,一个是静态主题,另一个是用户可以更改的主题。更改后,当前用户主题值将设置为sass变量,需要预编译。如何做到这一点?在这一点上,最好依靠纯CSS功能,而不是根据每个请求编译SCS(这将非常低效) 给定此基本SCSS文件:Ruby on rails 不同用户的动态样式,ruby-on-rails,ruby,sass,Ruby On Rails,Ruby,Sass,我需要每个用户的动态样式。问题是,可以在两个主题之间进行选择,一个是静态主题,另一个是用户可以更改的主题。更改后,当前用户主题值将设置为sass变量,需要预编译。如何做到这一点?在这一点上,最好依靠纯CSS功能,而不是根据每个请求编译SCS(这将非常低效) 给定此基本SCSS文件: .base-theme { .color-main { color: $blue-lighter; } // and so on } 您可以这样使用: <p class="
.base-theme {
.color-main {
color: $blue-lighter;
}
// and so on
}
您可以这样使用:
<p class="color-main"> ... </p>
根据存储在数据库中的设置,您可以生成替代方案
主题如下:
<style>
.alt-theme .color-main {
color: <%= current_user.colors.main %>;
}
</style>
.alt主题。主色{
颜色:;
}
然后再像这样应用它们:
<body class="<%= user.has_theme?? 'alt-theme' : 'base-theme' %>">...</body>
。。。
但是处理每个请求的SASS会让你的应用程序非常非常慢。资产管道并不打算在生产部署中以这种方式使用。是的,但我需要在更改sass样式后编写用于在生产上编译sass样式的逻辑。您只需在CSS中编写主题并切换顶级类,如我的示例所示。你甚至可以不用大言不惭地做这件事。我有这样的想法:$bluedark:#486eac$蓝色打火机#58c9f3$棕色品牌:#4a4a4a$品牌红:#d1282d$深紫色:#8175c7$紫光#afa5f1$深绿色:#aec785$一些蓝色:1FB5AD$穆赞红:d90444;在“设置”页面上,我可以更改每个变量的颜色值($moozen\u red、$some\u blue等)。我将这些值保存在DB中。在这种情况下,您应该根据用户的设置生成CSS,并将其注入
标记。当然,您需要确保用户只能指定颜色等