我有一个 rails 应用程序,其中我需要一个 css 文件,这样它的属性可以通过 ruby 代码更改。
前任。 background_color :<%= 返回背景颜色的 ruby 代码 %>
因此,用户可以设置其 css 属性,并且仅适用于该用户,例如主题。
谢谢!
最佳答案
你不能/不应该这样做。您将预编译 Assets ,因此无法动态适应不断变化的变量。这是一个不好的模式。
一个更简单的方法是添加一个类 .active
.inactive
在你的元素( body )上。或输出 内联 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 的一种非常有效的方式
附言2。这是我在此处回答的改编版:Creating scss variable in config.rb for scss files我认为这对任何来这里的人也很重要,所以我也在这里回答。
关于ruby-on-rails - 如何在css文件中编写ruby代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3301195/