Diferença entre @instance_variable e attr_accessor

Eu comecei a aprender Ruby e não vejo a diferença entre um@instace_variable e um atributo declarado usandoattr_accessor.

Qual é a diferença entre as duas classes seguintes:

class MyClass  
  @variable1 
end

e

class MyClass
  attr_accessor :variable1
end

Eu procurei muitos tutoriais online e todo mundo usa uma notação diferente. Ele tem que fazer alguma coisa com a versão em ruby? Eu também procurei alguns tópicos antigos no StackOverflow

O que é attr_accessor em Ruby?
Qual é a diferença entre essas duas definições de inicialização de classe Ruby?

Mas ainda não consigo descobrir qual é a melhor maneira de usar.

questionAnswers(5)

yourAnswerToTheQuestion