ruby-on-rails – 在CSS中访问Rails控制器实例变量
发布时间:2020-12-17 04:13:51 所属栏目:百科 来源:网络整理
导读:所以我看到很多关于在CSS文件中使用erb的讨论.我可以使用%=%来获取ERB来处理CSS文件语法并将.erb添加到文件中,但我真正需要的是访问控制器中的实例变量. searches_controller.rb def new @search = Search.new @school = School.find(params[:school])end
所以我看到很多关于在CSS文件中使用erb的讨论.我可以使用<%=%>来获取ERB来处理CSS文件语法并将.erb添加到文件中,但我真正需要的是访问控制器中的实例变量.
searches_controller.rb def new @search = Search.new @school = School.find(params[:school]) end 我真正想做的是: searches.css.scss.erb h1.logo { color: <%= @school.primary_color %>; } 但ERB会抛出错误,因为@school是零.有没有办法要求控制器访问这些实例变量? 我能想到的另一种方法是将它作为数据属性嵌入到视图中,然后使用JS在前端更改它.这让我感觉更好,因为CSS文件不会改变,每次都需要重新发送,但它也不会那么优雅. 解决方法
您还需要考虑在预编译的资产场景中,CSS将在编译期间通过Sprockets运行,因此您最终会得到一个静态颜色(假设@school实际上是实例化的,它不会被实例化).这是不可取的,因为每个学校都会有相同的颜色(无论在编译阶段发生了什么).
对于这样的自定义品牌,我们让用户指定颜色,并在布局中包含一个CSS块: :css h1.logo { color: <%= @school.primary_color %>; } 它并不理想,但如果你有少量的定制似乎工作得相当好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Install postgresql9.4 in CentOS 6.7
- vb.net版机房重构--存储过程的使用
- Oracle中查询表的大小和表空间的大小
- c# – 为什么.NET发送的邮件SmtpClient缺少Message-Id?
- cocos2d-iphone – 模糊CCLayerColor(用于暂停菜单)
- ruby-on-rails – 谁读取ENV [‘SSL_CERT_FILE’]的值?
- 【雪野实训记录】Oracle宾馆管理系统-L2综合项目案例
- Swift - 使用SWRevealViewController实现侧滑菜单
- applicationContext.xml文件详解
- FastJson---高性能JSON开发包