У меня есть приложение, которое сначала управляется только ролью администратора. Входные данные от разных врачей.
Теперь я хочу позволить врачам вводить свои данные и просматривать свои записи самостоятельно. Есть врачи, которым разрешено вводить и просматривать данные для других врачей.
Мне нужно что-то вроде этого.
User has_one: :role
User has_one_or_many: :doctors
Как лучше всего справляться с этим?
1) за роль в контроллерах?
if role == ADMIN
Bill.all
end
if role == DOCTOR
Bill.where(owner_id: current_user.doctors)
end
2) Добавить ограничения на rout.rb и иметь два контроллера для всего?
get 'sample/url' => 'bills_controller#index', constraints: AdminRole
get 'sample/url' => 'bills_doctors_controller#index', constraints: DoctorRole
3) Другой подход?
Вопросы:
- В зависимости от роли у них будут разные запросы.
- Я хочу показать только записи, которые принадлежат пользователю. Им не разрешается просматривать или изменять информацию других врачей.
- Я буду использовать одни и те же представления для каждой роли
- Это только API. Я использую AngularJS на стороне клиента