I am having a problem getting Devise to work the way I'd like with single table inheritance.
I have two different types of account organised as follows:
class Account < ActiveRecord::Base
devise :database_authenticatable, :registerable
end
class User < Account
end
class Company < Account
end
I have the following routes:
devise_for :account, :user, :company
Users register at /user/sign_up
and companies register at /company/sign_up
. All users log in using a single form at /account/sign_in
(Account
is the parent class).
However, logging in via this form only seems to authenticate them for the Account
scope. Subsequent requests to actions such as /user/edit
or /company/edit
direct the user to the login screen for the corresponding scope.
How can I get Devise to recognise the account 'type' and authenticate them for the relevant scope?
Any suggestions much appreciated.