Misturando attr_accessor e um método de inicialização em uma classe

Eu vejo código como:

class Person
  def initialize(name)
    @name = name
  end
end

Eu entendo isso me permite fazer coisas comoperson = Person.new e usar@name em outro lugar da minha aula, como outros métodos. Então, vi o código como:

class Person
  attr_accessor :name
end

...

person = Person.new
person.name = "David"

Eu estou apenas em uma perda com esses dois métodos de malha. Quais são os usos particulares dedef initialize(name)? Eu suponhoattr_accessor permite-me ler e escrever. Isso implica que eles são dois métodos separados. Sim? Quer esclarecimentos sobredef initialize eattr_accessor e como eles se encaixam.

questionAnswers(4)

yourAnswerToTheQuestion