我想知道Rails资产是否有任何根据环境而变化的方式。
类似的东西:
function log(m) {
<% if Rails.env=='development' %>
console.log(m)
<% end %>
}
同样,您可以通过在样式表中创建特定于环境的功能来显示特殊消息或颜色方案。
(我意识到资产是在生产中编译的,这就是为什么我不希望在服务器运行时使用任何任意Ruby代码执行此操作。但我想知道是否有办法至少对环境这样做。)
答案 0 :(得分:3)
请参阅Asset Pipeline, Preprocessing
在您的javascript清单文件 app / assets / javascripts / application.js
//...
//= dynamic_js
//...
app / assets / javascripts / dynamic_js.js.erb
function log(m) {
<% if Rails.env=='development' %>
console.log(m)
<% end %>
}
: app / assets / stylesheets / application.css
/*...
*= dynamic_css
*/
app / assets / stylesheets / dynamic_css.css.erb
.environment-color {
<% if Rails.env == 'development' %>
color: <%= 'red' %>
<% else %>
color: <%= 'white' %>
<% end %>
}