我有一个基于Rails 3.0的应用程序。这是一个预测应用程序,我在不同的点差上需要不同的CSS规则集,因为我使用具有不同规则的相同选择器。
以前在rails 3.0中我有一个很好的解决方案。
我的数据库中有一个列,其中包含CSS文件的名称(没有扩展名)。
我选择了这样的数据:
@spread = Spread.find_by_id(params[:spread_id])
@css_to_use = @spread.css_to_use
在我的application.html.erb中添加一个条件行:
<%= stylesheet_link_tag @css_to_use unless @css_to_use.blank? %>
这很好用,直到现在。我正在为Rails 3.2工作这个应用程序,并且由于资产管道,这种魔力消失了。
我发现了这个: Using Rails 3.1 assets pipeline to conditionally use certain css,但这是一个缓慢的解决方案(现在正是我想要的)。
这个问题有一个很好的解决方法吗?您是否知道一种解决方案,不仅可以加载指定的文件,还可以使用依赖项?
答案 0 :(得分:3)
我有一个具有类似要求的项目,我使用链接答案中显示的技术:
# app/views/layouts/application.html.haml
= stylesheet_link_tag "application", "labels/#{Whitelabel[:label_id]}"
# config/application.rb
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
config.assets.precompile += %w( active_admin.js active_admin.css labels/* )
这包括一个额外的样式表,不包含在application.rb
中