【问题标题】:Using a database value in a LESS file in Rails在 Rails 的 LESS 文件中使用数据库值
【发布时间】:2012-03-22 10:11:31
【问题描述】:

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

我有静态 CSS,并将其重命名为 styles.css.less 以确保 rails 理解 less 扩展,它看起来是。

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

该文件现在称为 style.css.less.erb。虽然文件 simple 包含有效的 CSS,但文档的处理工作正常。一旦我添加了一个 ruby​​ 字符串文字,它就会失败。

color: #{"#112233"};

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

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

【问题讨论】:

  • 这不是 erb 格式。你会想要<%= "#112233" %>。但是我不认为你能够从数据库中提取一个值到你的 CSS 中。我很确定资产管道无法访问 ActiveRecord。
  • 看来这是第二段旅程的必经之路 -> stackoverflow.com/questions/6266129/from-db-to-css-file

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


【解决方案1】:

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

color: <%= Setting.foo_color %>

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

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

【讨论】:

    猜你喜欢
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    相关资源
    最近更新 更多