Основываясь на комментарии, вот решение, которое может быть полезным
class Agency < ApplicationRecord
has_many :companies
has_many :users
end
class Company < ApplicationRecord
has_many :reports
belongs_to :agency
end
class Users < ApplicationRecord
has_many :reports
belongs_to :agency
enum role: [:agent]
end
Теперь, когда пользователь входит в ваше приложение, покажите ему список компаний, которыми он в данный момент управляет. Сохраните это id
в сеансе и используйте его для запроса ваших данных:
current_user.reports.where(company_id: session[:company_id].to_i)
например;
То же самое относится и к их созданию и удалению.
Однако это не оптимальное решение (я не уверен, каковы ваши намерения).
Я бы выбрал нечто более общее, например, роли пользователей для каждой компании, в которых UserCompany
имеет company
, user
и role
вместо role
на уровне пользователя (возможно, он агент в компания, но администратор другой компании и т.д ...). Все это зависит от того, что вам действительно нужно сделать.