The danger of Rails.env.production?
When I do a code review, one of the scariest things I see is logic like this:
if Rails.env.production? do_additional_work end
Why? Your beautiful tests and tightly integrated CI system won't execute that code. You won't see that code execute as you refresh your browser in development. From syntax errors to misspelled referenced classes, you'll be blind on exceptions...until you deploy to production.
- if Rails.env.production? = render partial: 'shared/google_analytics'
Event class to encapsulate an event we wish to track in Google Analytics. We'll send the event to GA if it exists in the session flash:
<% if event=flash[:event] %> ga('send', 'event', '<%=event.category%>', '<%=event.action%>'); <% end %>
If we shorted the
Event#category method name to
Event#cat, rendering the page would generate an exception in production. It's possible that wouldn't be caught in our test or development environments.
Use an alternate API key
<% api_key = Rails.env.production? ? "PROD API KEY" : "TEST API KEY" %> ... ga('create', '<%= api_key %>', 'auto'); ...
This ensures the full path will be executed and we won't pollute our production analytics data.