attr_reader :action_label
просто определяет метод."getters" в Ruby - это просто методы, подобные этому
def action_label
@action_label
end
attr_reader
- сокращение для определения такого метода.
Нет ничего плохого в переопределении метода в подклассе, это одиниз больших возможностей ООП.
Также это не то, для чего NotImplementedError .Поднять что-нибудь еще.