Rails Scope Возвращает переменную / Объединяет другим методом - PullRequest
0 голосов
/ 11 октября 2019

Я отсеиваю доступ к роли для модуля.

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возникновение пробелов при попадании в местоположение от пользователя без использования оператора соединения.

1 Ответ

0 голосов
/ 11 октября 2019

Сохранение этого на всякий случай, если кто-то испытает это:

return user.super_admin? || user&.role&.name == location.region.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...