所以我看到很多关于在你的 CSS 文件中使用 erb 的讨论。我可以让 ERB 通过使用 <%= %> 语法并将 .erb 添加到文件中来处理 CSS 文件,但我真正需要的是访问控制器中的实例变量。
search_controller.rb
def new
@search = Search.new
@school = School.find(params[:school])
end
我真正想做的是:
搜索.css.scss.erb
h1.logo {
color: <%= @school.primary_color %>;
}
但是 ERB 会抛出一个错误,因为 @school 是 nil。有没有办法要求控制器访问这些实例变量?
我能想到的唯一另一种方法是将其作为数据属性嵌入到视图中,然后使用 JS 在前端进行更改。这让我觉得可能更好,因为 CSS 文件不会更改并且每次都需要重新发送,但它也不会那么优雅。