在Rails中的LESS文件中使用数据库值

时间:2012-03-22 10:11:31

标签: ruby-on-rails ruby less dynamic-css

我已经安装了less-rails宝石,因为我热衷于使用LESS提供的颜色操作。我需要从我的数据库中提取一种颜色作为我的主题基色,并从那里开始构建。

我有静态CSS,并将其重命名为styles.css.less以确保rails了解扩展程度较低的内容。

接下来我尝试将文件包装为erb,希望在发送给LESS之前允许ruby字符串文字进行处理,并最终输出为有效的CSS(仍然和我在一起?)

该文件现在称为style.css.less.erb。虽然文件简单包含有效的CSS,但文档的处理仍然有效。只要我添加一个ruby字符串文字就会失败。

color: #{"#112233"};

在chrome调试器中,此行之后没有任何内容被处理。

我做错了什么,我该怎么办?

1 个答案:

答案 0 :(得分:1)

正如Chowlett在评论中所说,你应该使用erb语法:<%= "#112233" %> 下一步是从db获取该值。如果此颜色值是应用程序范围的,那么您可能正在寻找db解决方案中的设置。我使用rails-settings-cached gem。您的结果代码将如下所示

color: <%= Setting.foo_color %>

如果您在生产中使用资产,请不要忘记在每次设置更改后重新编译它们。

如果它不是一个设置,但可能是每个用户特有的东西,那么你不能使用应用程序范围的css文件,但你可以在视图中编写内联css。