0
継承されたフォーマットメソッドを使用して16進文字列をフォーマットしようとしています。私は少しRuby-noobです。どんな助けもありがとうございます。ここでRuby:継承を使用した動的セッター
class Bar
def alter_the_variable attribute_name
attribute = method(attribute_name)
formatted = "%.4x" % attribute.call.hex
puts formatted # => 00f3
attribute = formatted # What I "want" to be able to do, but
# doesn't work because attribute is a local variable
#attribute.owner.send(:h=, formatted) # Doesn't work either, gives:
# in `send': undefined method `h=' for Foo:Class (NoMethodError)
end
end
class Foo < Bar
def initialize
@h = "f3"
end
def h
@h
end
def h= val
@h = val
end
end
f = Foo.new
puts f.h # => f3
f.alter_the_variable :h
puts f.h # => f3
私はsend' 'の前で私の' attribute.owner'はFooのインスタンス、Fooのクラスにいない言及していたことを推測します。ありがとうございます。あなたは学者と紳士です。 – roris