【问题标题】:How to write ruby code in css file如何在css文件中编写ruby代码
【发布时间】:2014-04-22 18:03:53
【问题描述】:

我有一个 Rails 应用程序,其中我需要一个 css 文件,以便它的属性可以通过 ruby​​ 代码更改。 前任。 background_color :

因此,用户可以设置其 css 属性,并将仅适用于该用户,如主题。

谢谢!

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

你不能/不应该这样做。您将预编译您的资产,因此无法动态适应不断变化的变量。这是一种不好的模式。

一个更简单的方法是在你的元素(body)上添加一个类.active.inactive。或者根据已登录的用户,在您的脑海中输出 inline css 以获取自定义颜色等内容。

你想做什么?这听起来像是您要检查您是在生产还是开发中?在这种情况下,您可以执行以下操作:

<body class='<%= "development" if Rails.env == 'development' %>'>

甚至

<body <%= "style='background-color: red;'" if Rails.env == 'development' %>

你永远不需要在你的 css 和 javascript 中使用 ruby​​,如果你发现自己这样做了,那么你可能以错误的方式接近它。至少这是我在多次尝试做得很好之后发现的。

你可以在脑海中做到这一点:

<style>
    .user .name{
       color: <%= current_user.chosen_color %>;
    }
</style>

附言数据属性是将变量等传递给javascript的一种非常有效的方法

p.s.2。这是我在这里的回答的改编:Creating scss variable in config.rb for scss files我认为这对任何来这里的人来说都是相关的,所以我也在这里回答。

【讨论】:

    【解决方案2】:

    如果你只需要简单的东西,那么你可以在你的布局中做:

    <head>
    ....
    <% unless current_user.theme.nil? %>
    <style>
    body{
      background:<%= current_user.theme.background_color%>;
    }
    </style>
    </head>
    <% end %>
    

    如果您要开始一个新项目,SASS 是您的最佳选择,如果您有足够的时间,这可能也是您的最佳选择。如果只有几个条目,在 HTML 中做可能还不错。

    注意:我觉得这有点脏,但它会起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多