У меня есть controller
объект с controller.class == Admin::TeamsController
. У меня также может быть такое обстоятельство, как controller.class == Admin::UsersController
. Теперь я хочу проверить, верно ли это:
controller.class.to_s.match?('Admin::')
Т.е. я хочу знать: является ли этот объект класса, который определен в пространстве имен модуля Admin
? Чтобы объяснить это, структура выглядит следующим образом?
module Admin
module SomeOtherModulePerhaps
class TeamsController
end
end
end
Мой вопрос: есть ли лучший способ проверить это на 1027 *? Это немного хакерски - преобразовать класс в строку, а затем выполнить такое регулярное выражение.
РЕДАКТИРОВАТЬ:
Для моего ограниченного варианта использования я мог бы проверить так:
controller.class.to_s.split('::').first == 'Admin'
Но это не совсем решает общий случай, который могут иметь другие люди. Например, могут быть такие случаи, как XyzAdmin::TeamsController
, которые можно исключить, при которых мое первое решение дает сбой, или Foo::Admin::TeamsController
, когда можно включить , при которых мое второе решение дает сбой.
Я бы хотел найти лучший способ.