Problemas para mantener un objeto en una matriz, problemas de Ruby y problemas de Rails

Estoy tratando de agregar un objeto a mi matriz, sin embargo, la matriz siempre parece restablecerse, en lugar de agregar. ¿Qué estoy haciendo mal? Creo que tiene que ver conif(defined? libraryshelf) then, Lo que estoy tratando de hacer aquí es descubrir si la matriz existe o no (si este es el primer agregado o no).

def add_book
  @listofbooks ||= Array.new
  @listofbooks.push(params[:booktitle])
  @listofbooks
  respond_to do |format|
    format.html { redirect_to(:back) }
    format.js
  end
end

mi archivo add_book.js.erb

alert('<%= @listofbooks %>');

@listofbooks solo muestra el título del libro que agregué por última vez.

Respuestas a la pregunta(3)

Su respuesta a la pregunta