Я хотел бы сохранить ссылку на объект внутри подкласса StandardError
.Переопределить инициализацию для подкласса StandardError
Мой первый инстинкт должен был переопределить initialize
и назначить его (предоставление attr_reader
), таким образом:
class UnprocessableCardError < StandardError
attr_reader :card
def initialize(msg, card = nil)
@card = card
super msg
end
end
К сожалению, это приводит к backtrace must be Array of String
, когда я использую fail
, таким образом:
fail UnprocessableCardError, "Message", card_obj
Можете ли вы изменить свой вопрос, чтобы показать, как вы используете это с ' fail'? –
@ Иордан, вы были верны в своем ответе, вопрос обновлен, спасибо! – dukedave