【发布时间】:2012-02-23 03:36:40
【问题描述】:
是否有任何适当的方法来检测应用程序布局中的环境(开发或生产)?比如说,我不想在本地沙箱中渲染 GA 代码。
在 Django 中,我们使用{% if not debug %}{% include '_ga.html' %}{% endif %}。我应该在 Rails 中使用什么?谢谢。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 view
是否有任何适当的方法来检测应用程序布局中的环境(开发或生产)?比如说,我不想在本地沙箱中渲染 GA 代码。
在 Django 中,我们使用{% if not debug %}{% include '_ga.html' %}{% endif %}。我应该在 Rails 中使用什么?谢谢。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 view
你可以使用:
Rails.env.production?
#or
Rails.env.development?
#or
Rails.env.test?
请参阅docs 了解更多信息。因此,您可以执行以下操作:
<% if Rails.env.development? %>
<p>Dev Mode</p>
<% else %>
<p>Production or test mode</p>
<% end %>
【讨论】:
我承认这个问题很老,但我只是在寻找类似的东西时遇到它。我认为稍微好一点的做法是不要问“我在什么环境中?”而是根据您要执行的操作来设置配置。因此,如果您想在开发中添加自定义调试页脚,您可以在 config/application.rb 中添加以下内容:
config.show_debug_footer = false
设置默认行为。然后在 config/environments/development.rb 中添加:
config.show_debug_footer = true
然后在您的代码中,您需要更改行为的地方,您可以检查:
if Rails.configuration.show_debug_footer
[...]
end
这是一种非常灵活的方式,可以根据您的环境进行更改的自定义配置,并保持您的代码高度可读。
【讨论】: