ruby-on-rails - 如何在css文件中编写ruby代码

标签 ruby-on-rails

我有一个 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/

相关文章:

ruby-on-rails - 你对使用 Rails 脚手架生成器的看法

ruby-on-rails - 使用 Rails 登录重定向后无法理解 Devise

javascript - 带有 javascript 文件的 Rails gem

ruby-on-rails - Rails 4,Puma,Nginx - ActionController::Live Streaming 在发送第一个 block 后死亡

ruby-on-rails - Active Record 按最小值排序

ruby-on-rails - rails 5.1 : "unknown firstpos: NilClass" - Issue reloading application

ruby-on-rails - rails 3 link_to with ONLY_path = false

ruby-on-rails - 如何重新初始化 ruby​​ on Rails 项目

ruby-on-rails - 如何将 Ruby 散列转换为 XML?

ruby-on-rails - 使用 Octokit 从组织中检索私有(private)存储库