1
私はrubyメソッドkind_of?
とis_a?
を利用しようとしています。私が理解しているように、彼らはお互いの同義語です。Ruby kind_of?とis_a?サブクラスに対してfalseを返す
私はクラスChild
のオブジェクトを持っています。 Child.ancestors
を呼び出すと、この[Child, #<Module>, Parent, ...]
の配列リストが返されます。ただし、Child.new.is_a?(Parent)
またはChild.new.kind_of?(Parent)
を呼び出すとfalseが返されます。
Child.ancestors[2].new.is_a?(Parent)
を呼び出すと、falseも返されます。 Parent.new.is_a?(Parent)
が明らかにそうであるように真を返すと考えることが考えられる理由を理解できないようです。
これらのクラスは、最終的にActiveResource::Base
から降ります。
class Parent < ActiveRecord::Base
include MyModule
def self.my_method(obj)
if obj.is_a?(Parent)
puts 'Hello'
end
end
end
class Child < Parent
def my_method
self.class.my_method(self)
end
end
a = Child.new
a.my_method
クラス定義を投稿できますか? – Gazler
'クラスの親