Полагаю, это связано с тем, что суперкласс контроллера не знает о существовании методов подкласса. В этом можно убедиться, проверив массив methods
подкласса.
Кажется, что решение состоит в том, чтобы пересмотреть ваш дизайн. Вместо проверки существования filename_method
, просто укажите поведение имени файла по умолчанию в базовом методе filename
и переопределите метод filename
в подклассе, чтобы обеспечить пользовательские функции имени файла.
Например, в вашем суперклассе:
def filename
# return default file name
end
А в вашем подклассе:
def filename
# return custom file name
end