、、、、、などの属性を含むという名前のクラスがありFamily Members
ます (ファイル内) 。family_members.rb
name
sex
type
role
age
とというインスタンスを作成fm1
しました。fm2
fm3
fm4
fm5
#family_members.rb
require_relative 'family'
require_relative 'checkdetails'
class FamilyMembers < Family
attr_accessor :name, :sex, :status, :age
def initialize (name, sex, type, role, age)
@name = name
@sex = sex
@type = type
@role = role
@age = age
end
end
fm1 = FamilyMembers.new('Andrew','Male', 'Child', "Son" , "27" )
fm2 = FamilyMembers.new("Bill","Male", "Parent", "Father" , "63" )
fm3 = FamilyMembers.new("Samantha","Female", "Parent", "Mother" , "62" )
fm4 = FamilyMembers.new("Thomas","Male", "Child", "Dog" , "10" )
fm5 = FamilyMembers.new("Samantha", 'Female', "Child", "Dog" , "4" )
Parent?
クラスのインスタンスが aParent
または aであるかどうかをチェックするメソッドChild
が呼び出され、以下に示すように呼び出されます。
#check_details //would like to use this method
fm4.parent?
ユーザーがチェックするクラスのインスタンスを動的に選択することは可能でしょうか?
ファイルで呼び出さcheck_details
れるメソッドを作成しました。checkdetails.rb
#checkdetails.rb
def check_details
puts "What family to you want to check? choose 1 to 5"
$family = 'fm' + gets.chomp
end
ただし、次のようにメソッドを呼び出そうとするとparent
:
check_details
$family.parent?
次のエラーが表示されます。
`<top (required)>': undefined method `parent?' for "fm1":String (NoMethodError)
from -e:1:in `load'
from -e:1:in `<main>'
これを動的に行う方法はありますか?おそらくグローバル変数なし-これは悪い習慣と見なされているのでしょうか?
助けてくれてありがとう。