  
<div id="snippet_344" class="snippet">
  <h2><a href="/snippets/344-Custom-404-Rails-error-pages" title="Custom 404 Rails error pages - Ruby - 404, rails, custom, error">Custom 404 Rails error pages</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted 9 months ago by christian
          
  </div>

  <div class="body">
    <p>All credit for this snippet is due to <a href="http://henrik.nyh.se/2008/07/rails-404">Henrik Nyh</a>.</p>
<p>Put this in application_controller.rb:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">alias_method</span> <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>rescue_action_locally</span>, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>rescue_action_in_public</span> <span class="Keyword">if</span> <span class="Variable">RAILS_ENV</span> <span class="Operator">==</span> <span class="String"><span class="String">'</span>development<span class="String">'</span></span>
<span class="line-numbers">   2 </span>   
<span class="line-numbers">   3 </span>   <span class="Keyword">def</span> <span class="FunctionName">render_optional_error_file</span>(<span class="FunctionArgument">status_code</span>)
<span class="line-numbers">   4 </span>     <span class="Keyword">if</span> status_code <span class="Operator">==</span> <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>not_found</span>
<span class="line-numbers">   5 </span>       activate_authlogic
<span class="line-numbers">   6 </span>       render_404
<span class="line-numbers">   7 </span>     <span class="Keyword">else</span>
<span class="line-numbers">   8 </span>       <span class="Keyword">super</span>
<span class="line-numbers">   9 </span>     <span class="Keyword">end</span>
<span class="line-numbers">  10 </span>   <span class="Keyword">end</span>
<span class="line-numbers">  11 </span> 
<span class="line-numbers">  12 </span>   <span class="Keyword">def</span> <span class="FunctionName">render_404</span>
<span class="line-numbers">  13 </span>     respond_to <span class="Keyword">do </span>|<span class="Variable">type</span>| 
<span class="line-numbers">  14 </span>       type.<span class="FunctionName">html</span> { render <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>template</span> =&gt; <span class="String"><span class="String">&quot;</span>errors/error_404<span class="String">&quot;</span></span>, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>layout</span> =&gt; <span class="String"><span class="String">'</span>application<span class="String">'</span></span>, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>status</span> =&gt; <span class="Number">404</span> } 
<span class="line-numbers">  15 </span>       type.<span class="FunctionName">all</span>  { render <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>nothing</span> =&gt; <span class="BuiltInConstant">true</span>, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>status</span> =&gt; <span class="Number">404</span> } 
<span class="line-numbers">  16 </span>     <span class="Keyword">end</span>
<span class="line-numbers">  17 </span> 
<span class="line-numbers">  18 </span>     <span class="BuiltInConstant">true</span>  <span class="LineComment"><span class="LineComment">#</span> so we can do &quot;render_404 and return&quot;</span>
<span class="line-numbers">  19 </span>   <span class="Keyword">end</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/644-404">404</a>, <a href="/tags/9-rails">rails</a>, <a href="/tags/758-custom">custom</a>, <a href="/tags/476-error">error</a>
    
    
  </div>
</div>



  
<div id="snippet_292" class="snippet">
  <h2><a href="/snippets/292-Tracking-404-and-500-with-Google-Analytics" title="Tracking 404 and 500 with Google Analytics - JavaScript - 404, 500, google, analytics, track">Tracking 404 and 500 with Google Analytics</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/61-JavaScript">
      JavaScript</a> posted about 1 year ago by christian
          
  </div>

  <div class="body">
    <p>Tracking 404 and 500 errors with Google Analytics is <a href="http://www.google.com/support/analytics/bin/answer.py?hl=en&amp;answer=86927">documented here</a>, but I tend to forget so I&#8217;m putting the information here:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="LineComment"><span class="LineComment">//</span> 404</span>
<span class="line-numbers">   2 </span> pageTracker._trackPageview(<span class="String"><span class="String">&quot;</span>/404.html?page=<span class="String">&quot;</span></span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">location</span>.<span class="NamedConstant">pathname</span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">location</span>.search <span class="Operator">+</span> <span class="String"><span class="String">&quot;</span>&amp;from=<span class="String">&quot;</span></span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">referrer</span>);
<span class="line-numbers">   3 </span> 
<span class="line-numbers">   4 </span> <span class="LineComment"><span class="LineComment">//</span> 500</span>
<span class="line-numbers">   5 </span> pageTracker._trackPageview(<span class="String"><span class="String">&quot;</span>/500.html?page=<span class="String">&quot;</span></span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">location</span>.<span class="NamedConstant">pathname</span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">location</span>.search <span class="Operator">+</span> <span class="String"><span class="String">&quot;</span>&amp;from=<span class="String">&quot;</span></span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">referrer</span>);
</pre></p>
<p>In Rails I set the response code and use that instead of hardcoding it in the view:<br />
<pre class="active4d"><span class="line-numbers">   1 </span> <span class="Operator">&lt;</span><span class="Operator">%</span> <span class="Keyword">if</span> response.<span class="NamedConstant">status</span> <span class="Operator">!</span><span class="Operator">=</span> <span class="Number">404</span> <span class="Operator">%</span><span class="Operator">&gt;</span>
<span class="line-numbers">   2 </span> pageTracker._trackPageview();
<span class="line-numbers">   3 </span> <span class="Operator">&lt;</span><span class="Operator">%</span> <span class="Keyword">else</span> <span class="Operator">%</span><span class="Operator">&gt;</span>
<span class="line-numbers">   4 </span> pageTracker._trackPageview(<span class="String"><span class="String">&quot;</span>/404.html?page=<span class="String">&quot;</span></span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">location</span>.<span class="NamedConstant">pathname</span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">location</span>.search <span class="Operator">+</span> <span class="String"><span class="String">&quot;</span>&amp;from=<span class="String">&quot;</span></span> <span class="Operator">+</span> <span class="LibraryClassType">document</span>.<span class="NamedConstant">referrer</span>);
<span class="line-numbers">   5 </span> <span class="Operator">&lt;</span><span class="Operator">%</span> end <span class="Operator">%</span><span class="Operator">&gt;</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/644-404">404</a>, <a href="/tags/434-500">500</a>, <a href="/tags/115-google">google</a>, <a href="/tags/502-analytics">analytics</a>, <a href="/tags/506-track">track</a>
    
    
  </div>
</div>






