В вашем примере вы столкнулись с проблемой, что одна из ваших строк в вашем расчете для года равна нулю.Скорее всего, это
expiry_year[expiry_year.length-3..expiry_year.length-1]
Вы можете попытаться исправить это, вызвав to_s
для переменной виновника, таким образом, преобразовав ноль в ''
и затем конкатенируйте.
Примерно так: expiry_year = month_number.to_s + expiry_year[expiry_year.length-3..expiry_year.length-1].to_s
Однако, это может иметь другие видимые последствия и не рекомендуется.Лучшим подходом было бы выяснить, почему то, что вы ожидаете от строки, оказывается пустой и, возможно, отображает соответствующую ошибку.
Не могли бы вы объяснить немного больше о том, что функция должна делать??А может быть значение expiry_year
и monty_det
при возникновении ошибки?puts
заявления могут быть большой помощью здесь.