gpt4 book ai didi

css - 在 Ruby on Rails 中将新元素添加到集合后,如何重新编译我的 application.css.scss.erb Assets ?

转载 作者:太空宇宙 更新时间:2023-11-03 19:29:26 25 4
gpt4 key购买 nike

我正在开发一个 Rails 应用程序,它允许管理员用户动态地向集合添加颜色,然后通过对颜色和 CSS 类的引用将这些颜色应用于帖子。

在我的 application.css.scss.erb 文件中,我有以下代码:

<% Color.all.each do |color| %>
.theme-<%= color.name %>{
color: <%= color.text_color %>;
background: <%= color.hex_code %>;
border-top-color: <%= color.hex_code %>;
}
<% end %>

如您所见,我正在浏览 Colors 集合中的所有颜色,并为每一种颜色创建一个特定的 css 类,以便在我的帖 subview 中应用。

每个帖子都引用了 Colors 集合中的一种颜色,因此在我的帖 subview 中,我像这样应用该类:

<div id="post-header" class="theme-<%= @post.color.name %>">
<h1><%= @post.title %></h1>
<%= link_to image_tag('post_header_image.png'), post_path(@post) %>
</div>

我希望管理员用户可以通过表单动态地将新颜色添加到 Colors 集合,然后自动编译 application.css.scss.erb 文件,以便可以正确应用任何新颜色类离开,无需手动刷新或更新 application.css.scss.erb 文件。

问题是当我动态地添加一个新的 Color 到颜色集合时,我的 application.css.scss.erb 文件没有重新编译,因此没有创建新的颜色类,所以实际的颜色样式没有显示出来在我的帖 subview 中。

在将新颜色添加到 Colors 集合后,是否有任何方法可以强制 Rails 重新编译我的 application.css.scss.erb 文件?

否则,有没有更好的方法来处理 Rails 中的动态样式和类?

最佳答案

只是一个简单的解决方案,如果您只想更改此 div 的颜色,请使用样式标签?

<div id="post-header" style="<%= @post.color.name.present? ? "color: #{@post.color.name};" : "" %>">
...
</div>

如果您不使用标准颜色,您可以将十六进制代码作为另一列存储在数据库中,然后在颜色变量前添加一个额外的#。

关于css - 在 Ruby on Rails 中将新元素添加到集合后,如何重新编译我的 application.css.scss.erb Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37628656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com