ルビー: 2.3.7
レール: 4.2.10
Refinements を使用して String クラスにメソッドを追加する次の実装があります。
module StringExtensions
refine String do
def numeric?
str = String.new(self)
(/\A\d+\z/ =~ str) == 0
end
end
end
class ShippingAddress < Address
using StringExtensions
# ...
private
def normalise_address_1
return unless address_1.numeric?
self.address_1 = "Calle #{address_1}"
end
end
明らかなようnumeric?
に、String クラスの洗練されたメソッドです。
しかし、私は失敗しますNoMethodError
NoMethodError: undefined method `numeric?' for "20":String
from (pry):1:in `normalise_address_1'
ここで何が間違っていますか?