我正在升级到rails 3.1。在我的旧application.html.erb中,我有一行:
<%= stylesheet_link_tag "themes/#{session[:theme].nil? ? 'base' :
session[:theme]}/ui.all" %>
如您所知,我想在会话[:theme]上更改样式库。
感谢This link,我取得了一些进展。我将application.css.erb
修改为:
/*
* *= require_self
* */
<%
require_asset("themes/#{session[:theme].nil? ? 'base' :
session[:theme]}/ui.all" )
k%>
/* rest of file omitted */
但它抱怨这个:
undefined local variable or method `session' for #<#<Class:0x95152e4>:0x9c6c8bc>
(in /home/rocky/work/apps/fanfan/app/assets/stylesheets/application.css.erb)
答案 0 :(得分:2)
应用程序清单是在部署时编译的,或者如果您正在为资产提供服务而编译和缓存,因此您有两个问题。
第一个是没有可用的会话值,第二个是即使你可以改变它,它也行不通;它将在第一次编译清单时进行缓存。
您可以返回初始解决方案,并在配置中添加一个以使其正常工作。
config.assets.precompile += ['themes/theme1_name/ui.all', 'themes/theme2_name/ui.all', etc]
我假设themes
位于默认的样式表位置。