title: How to make a public page in an app that uses devise
body: <p>I'm using devise for Authentication in a Rails 4 app. Almost all of the app requires a user to be authenticated, however, there are a few 'public' pages (Terms and conditions - that kind of stuff).</p>
  
  <p>Devise itself makes the <code>sign up</code> and <code>sign in</code> pages public, using <code>prepend_before_filter :require_no_authentication</code>. However, that method <a href="https://github.com/plataformatec/devise/issues/901" rel="nofollow">is intended only for devise controllers</a>. And devise doesn't seem to provide a 'proper' way to make single actions public.</p>
  
  <p>So, what's the best way to make just a couple of actions public?</p>
  
  <p>The only ways I can think of so far is:</p>
  
  <ol>
  <li><p>To make a new <code>public</code> namespace, and have separate controllers for public actions, which inherit from a <code>PublicController</code> that does not execute <code>before_filter :authenticate_user!</code></p></li>
  <li><p>Same as above, but ditch the inheritance and the namespace. So the <code>PublicController</code> could act as a bucket for anything that needs to be public - which at this stage isn't much.</p></li>
  </ol>
  
  <p>Is there a better way to make individual actions public with devise?</p>