Я отсеиваю доступ к роли для модуля.
scope :for_user, lambda { |user|
if user.super_admin?
self
else
region = Region.find_by(name: user&.role&.name)
if region.present?
joins(:location)
.where(location_id: region.location_ids)
end
end
}
def viewable(user)
return user.super_admin? || user&.role&.name == region.name
end
Область действия работает в фильтре. В двух словах, необходимо выполнить фильтрацию по super_admin ИЛИ от пользователя, если их роль соответствует имени региона, в котором есть местоположения, в которых отображаются все присутствующие события. Однако ... просмотр определяется видимым методом. Итак, мой вопрос: как мне нажать на оператор else в OR?
Я пытался просто скопировать всю область видимости в видимую, но в итоге получаю
неопределенный метод `join '
I'mвозникновение пробелов при попадании в местоположение от пользователя без использования оператора соединения.