これが機能しない理由を教えてください。
以下のコードはstudent1とstudent2を正しく出力しますが、student3でclassメソッドを機能させることができません。
私がやろうとしているのは.create_with_species
、species属性=を"Human"に指定してクラスメソッドを割り当てることだけです。
ただし、プログラムを実行すると、「ローカル変数またはメソッドsex
が未定義です」というエラーが表示されます。私は初心者で、何を間違えたのか理解できません。
Initializeメソッドで「性別」を識別したので、などのクラスメソッド内で使用できるはずだと理解していましたcreate_with_species
。クラスメソッドで性別を明示的に定義しようとしましたstudent.sex = sex
が、それでも同じエラーが発生しました。
class Students
attr_accessor :sex, :age, :species
def self.create_with_species(species)
student = Students.new(sex,age)
student.species = species
return student
end
def initialize(sex, age)
@sex = sex
@age = age
puts "----A new student has been added----"
end
end
student1 = Students.new("Male", "21")
puts student1.sex
puts student1.age
puts
student2 = Students.new("Female", "19")
puts student2.sex
puts student2.age
student3 = Students.create_with_species("human")