Realizar un simple Search Form en Rails 4

Iniciado por Alejandro_99, Septiembre 24, 2014, 04:06:32 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Septiembre 24, 2014, 04:06:32 PM Ultima modificación: Septiembre 24, 2014, 04:08:43 PM por Alejandro9999
1) Ingresamos a la carpeta de nuestro proyecto luego nos dirigimos a: /app/views/alumnos/index.html.erb una vez dentro del archivo ingresamos la siguiente linea:

Código: ruby
<%= form_tag(alumnos_path, :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:search], placeholder: "Buscar Alumno por D.N.I" %>
<%= submit_tag "Buscar", :name => nil %>
<% end %>


La vista usará form_tag con un método HTTP GET. Cabe mencionar que a este código de la vista lo puede colocar donde mas les plazca.

2) Manteniendonos dentro del proyecto nos vamos al siguiente directorio: app/models/alumno.rb una vez que hemos ingresado creamos un método para buscar la base de datos y devolver un resultado exacto de una consulta:

Código: ruby
class Alumno < ActiveRecord::Base

def self.search(query)
where("DNI like ?", "%#{query}%")

end

end


3) Finalmente nos vamos a nuestro controlador de nuestro proyecto para ello hay que ingresar al siguiente directorio: app/controllers/alumnos_controller.rb


He ingresamos el siguiente código:

Código: ruby
def index

if params[:search]
    @alumnos = Alumno.search(params[:search]).order("created_at DESC")
  else
    @alumnos = Alumno.all.order('created_at DESC')
  end
  #@alumnos = Alumno.all
  end


Con esto hemos activado la función de búsqueda en nuestro modelo.