小编rur*_*abe的帖子

在CSS中访问Rails控制器实例变量

所以我看到很多关于在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文件不会改变,每次都需要重新发送,但它也不那么优雅.

ruby ruby-on-rails erb instance-variables scoping

7
推荐指数
1
解决办法
5500
查看次数

标签 统计

erb ×1

instance-variables ×1

ruby ×1

ruby-on-rails ×1

scoping ×1