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