Rails - Лучшая практика для отображения данных в зависимости от роли - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть приложение, которое сначала управляется только ролью администратора. Входные данные от разных врачей. Теперь я хочу позволить врачам вводить свои данные и просматривать свои записи самостоятельно. Есть врачи, которым разрешено вводить и просматривать данные для других врачей. Мне нужно что-то вроде этого.

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 на стороне клиента
...