Otras Páginas

Expandir Todo

Redirigir A La Lista De Temas Despues De Crear Uno

Objetivos

    Cuando un usuario crea un tema nuevo, o edita un tema existente, estos son actualmente mostrados en una página con sólo ese tema. Para nuestra aplicación tendría más sentido que se nos regresara a la lista de temas.

    En este paso cambiaremos el flujo de nuestra aplicación para que los usuarios sean regresados a la lista de temas después de que hayan añadido un nuevo tema (new) o editado un tema existente (update).

Pasos

Paso 1: Modificar el controlador de temas

Abrir app/controllers/topics_controller.rb y observar el método create

Encuentra la línea:

format.html { redirect_to @topic, notice: 'El tema se ha creado correctamente.' }

y cambia @topic por topics_path así:

format.html { redirect_to topics_path, notice: 'El tema se ha creado correctamente.' }

para que el archivo luzca así:

def create
  @topic = Topic.new(topic_params)

  respond_to do |format|
    if @topic.save
      format.html { redirect_to topics_path, notice: 'El tema se ha creado correctamente.' }
      format.json { render action: 'show', status: :created, location: @topic }
    else
      format.html { render action: 'new' }
      format.json { render json: @topic.errors, status: :unprocessable_entity }
    end
  end
end

En el mismo archivo, encuentra el método update.

Encuentra la línea:

format.html { redirect_to @topic, notice: 'El tema se ha actualizado correctamente.' }

y cambia @topic por topics_path así:

format.html { redirect_to topics_path, notice: 'El tema se ha actualizado correctamente.' }

Paso 2: Añade el mensaje flash a la vista de tu aplicación

Abre app/views/layouts/application.html.erb.

Encuentra la etiqueta de HTML <body> e inmediatamente agrega el siguiente código:

<% flash.each do |name, msg| %>
    <div><%= msg %></div>
<% end %>

Paso 3: Confirma los cambios

Explicación

  • format.html { redirect_to topics_path, notice: 'El tema se ha creado correctamente.' }:
    • format.html significa que el servidor debería regresar html al navegador
    • redirect_to topics_path quiere decir: muestra la página de la lista de temas cuando hayamos terminado de crear o actualizar un tema
    • notice: 'El tema se ha creado/actualizado correctamente' imprime el mensaje dentro de la notificación flash para que sea mostrado en la lista de temas

Siguiente Paso: