我有一个rails应用程序,其中我需要一个css文件,以便通过ruby代码更改其属性。 ex。 background_color:<%=返回背景颜色的红宝石代码%>如何在css文件中编写ruby代码
因此,用户可以设置其CSS属性,并将只适用于像主题那样的用户。
谢谢!
我有一个rails应用程序,其中我需要一个css文件,以便通过ruby代码更改其属性。 ex。 background_color:<%=返回背景颜色的红宝石代码%>如何在css文件中编写ruby代码
因此,用户可以设置其CSS属性,并将只适用于像主题那样的用户。
谢谢!
看看这个截屏解释如何使用ERB(Rails的模板系统) http://nubyonrails.com/system/images/css-erb-small.mov
检查出this tutorial关于使用SASS引擎动态更改CSS。
而且,看看http://lesscss.org/
建立动态CSS文件,如果您只是需要一些简单 ,那么你可以做你的布局:
<head>
....
<% unless current_user.theme.nil? %>
<style>
body{
background:<%= current_user.theme.background_color%>;
}
</style>
</head>
<% end %>
如果你开始一个新的项目,SASS是要走的路,可能如果你有足够的时间,就是要走的路。如果只有几个条目,那么在HTML中执行它可能并不坏。
注:我觉得有点肮脏,但它会工作。
你不能/不应该这样做。您将预编译您的资产,因此无法动态适应变化的变量。这是一个不好的模式使用。
一个更简单的方法是在您的元素(body)上添加一个类.active
.inactive
。或输出内联css在你的脑海中,像自定义颜色等,取决于用户登录。
你想做什么?这听起来像是你想要检查你是在生产还是在开发中?在这种情况下,你可以这样做:
<body class='<%= "development" if Rails.env == 'development' %>'>
甚至
<body <%= "style='background-color: red;'" if Rails.env == 'development' %>
你应该从来不需要使用Ruby在你的CSS和JavaScript,如果你发现自己在做它,你很可能接近它的错误的方法。至少这是我在多次尝试做得很好之后发现的。
你可以在你的脑袋做到这一点:
<style>
.user .name{
color: <%= current_user.chosen_color %>;
}
</style>
附:数据属性是一种将变量等传递给javascript的非常有效的方式。这是我在这里的答案的改编:Creating scss variable in config.rb for scss files我认为这也适用于任何来到这里的人,所以我也在这里回答。
“不存在的域” - 这将是很高兴知道这是如何完成的。这就是为什么张贴链接不适合答案。 – JosephK 2017-02-03 08:18:03