Project

I am creating application which requires User management of various levels for authorization of different level of users. I want several models: Admin_user Project Manager Company Clients Account : have many users of all level.Every user have account. See below the relations between our models: 1. Admin_user : have many project managers and can give rights to project manager.It can add and delete Project managers.Admin can access or manage any level of this application i.e. Its a SUPER USER. 2.Project manager : have many companies.It can create and delete many companies. Project Manager can also add new project manager if Admin_user give right to him to create new project manager.its all depends on Admin_user to give or take rights from PM. 3. Companies : can create and delete many client_users but cannot create any company in th same level.Company also start or stop rights of client. 4.Client :can have account login and use services provided by company nothing more than that. This is my model Association. But i m confused what can i make first a Account model or a Admin_user model. Thanks

I think you may be going about this the wrong way. Instead of having many different models for the user types have one model for all users and assign roles to give them different permissions. Have a look at the cancan gem.

Colin

CanCan would be simple to achieve what you want.Install cancan gem and define Ability.rb in models

Sample Abillity.rb might look like this.

class Ability    include CanCan::Ability

   def initialize(user)      # Define abilities for the passed in user here. For example: