仅在Ruby on Rails中以测试模式运行外部CSS

时间:2016-08-25 23:30:33

标签: ruby-on-rails

我有一个CSS文件,我想只在测试模式下运行,而不是在开发或生产中。我知道如何内联如下:

<% if Rails.env.test? &>
  <style>
    //My test only styles
  </style>
<% end %>

然而,这是有效的,我更喜欢避免使用内联样式表,因为它们没有组织且难以维护。我已经尝试将它应用到外部样式表中:

<%= stylesheet_link_tag 'my_stylesheet.css' if Rails.env.test? %>

但这只有在我将CSS文件添加到applications.css时才有效。如果我这样做,无论我在哪个环境中运行,都会添加文件。

所以我的问题是,如何在仅在测试模式下运行的rails中添加外部样式表?对于奖励积分,我怎么能得到轨道来编译仅在测试模式下运行的SASS?

1 个答案:

答案 0 :(得分:1)

这不是一个完美的解决方案,但您可以考虑在测试模式下向htmlbody标记添加一个类,然后为您的测试样式显式指定该类。

这将为您提供清晰的分离和可维护性优势,但权衡的是您仍然需要由资产管道编译这些优势。