У меня есть метод в патче, как показано ниже:
def applicable_resource_type(resource_type)
if resource_type.include?('Student')
student_setting
else
teacher_setting
end
end
Этот метод вызывается в другом патче, который проверяет, является ли тип ресурса «учитель» или «ученик», и сохраняет логическое значение в «активный».».
def exams
School.new(resource: self).request if can_examine_students?
end
private
def can_examine_students?
active = applicable_resource_type(self.class.name).is_active?
if active && (self.is_a?(Teacher))
active = belongs_to_school?
end
active
end
Однако resource_type
передается как String
, тогда как в can_examine_students?
оно передается как класс / модуль.Есть ли способ сделать их обоих согласованными?
Я попробовал следующее:
def applicable_resource_type(resource_type)
if resource_type.include?(Student)
student_setting
else
teacher_setting
end
end
Но выдало ошибку как:
TypeError:
no implicit conversion of Class into String
Я также попробовал
resource_type.include?('Student'.constantize)
Но он выдал ту же ошибку typerror
.
Есть ли способ устранить вышеуказанную ошибку и сохранить согласованность обоих типов ресурсов:
Спасибо