title: Multiple user models with Ruby On Rails and devise to have separate registration routes but one common login route
body: <p>First, I've searched intensely with Google and Yahoo and I've found several replies on topics like mine, but they all don't really cover what I need to know.</p>
  <p>I've got several user models in my app, for now it's Customers, Designers, Retailers and it seems there are yet more to come. They all have different data stored in their tables and several areas on the site they're allowed to or not. So I figured to go the devise+CanCan way and to try my luck with polymorphic associations, so I got the following models setup:</p>
  <pre><code>class User &lt; AR
    belongs_to :loginable, :polymorphic =&gt; true
  end
  
  class Customer &lt; AR
    has_one :user, :as =&gt; :loginable
  end
  
  class Designer &lt; AR
    has_one :user, :as =&gt; :loginable
  end
  
  class Retailer &lt; AR
    has_one :user, :as =&gt; :loginable
  end
  </code></pre>
  <p>For the registration I've got customized views for each different User type and my routes are setup like this:</p>
  <pre><code>devise_for :customers, :class_name =&gt; 'User'
  devise_for :designers, :class_name =&gt; 'User'
  devise_for :retailers, :class_name =&gt; 'User'
  </code></pre>
  <p>For now the registrations controller is left as standard (which is &quot;devise/registrations&quot;), but I figured, since I got different data to store in different models I'd have to customize this behaviour as well!?</p>
  <p>But with this setup I got helpers like <code>customer_signed_in?</code> and <code>designer_signed_in?</code>, but what I'd really need is a general helper like <code>user_signed_in?</code> for the areas on the site that are accessible to all users, no matter which user type.</p>
  <p>I'd also like a routes helper like <code>new_user_session_path</code> instead of the several <code>new_*type*_session_path</code> and so on. In fact all I need to be different is the registration process...</p>
  <p>So I was wondering IF THIS IS THE WAY TO GO for this problem? Or is there a better/easier/less must-customize solution for this?</p>