Rails - 仅在生产中显示代码的最佳方式?

时间:2011-01-08 06:39:46

标签: ruby-on-rails

我有一些代码,我只想在生产中显示,例如,显示disqus注释。这样做的最佳方法是什么?目前我有:

<% if RAILS_ENV.eql?('production') %>
    disqus code here
<% end %>

但我不确定这是最好的方法,还是它?看起来非常冗长,我需要在应用程序的几个不同的地方。

3 个答案:

答案 0 :(得分:46)

有效检查

<% if Rails.env.production? %>
  disqus code here
<% end %>

无需在environment.rb或初始化程序中将其作为常量。只是保持你的代码简单并使用Rails.env.production?在我的主要代码库中,我说。

答案 1 :(得分:40)

我建议在application_helper.rb文件中编写辅助方法:

def render_disqus
    return '' unless Rails.env.production?
    #render disqus stuff here...
end

然后,在您的视图中,它变得非常简单:

<%= render_disqus %>

答案 2 :(得分:0)

如果您想在生产中显示某些内容,但不想在特定页面上显示,您可以执行以下操作:

<% if !current_page?(controller: 'home', action: 'dashboard') %>
  <% if Rails.env.production? %>
    <!-- contant go here -->
  <% end %>
<% end %>