Skip to content

Un breve ejemplo sobre cómo crear Paises, provincias y ciudades, dado un modelo "Location"

Notifications You must be signed in to change notification settings

ginzunza/location-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 

Repository files navigation

location-model

Un breve ejemplo sobre cómo crear países, regiones,provincias y ciudades, dado un modelo "Location". Cabe destacar que los ejemplos irán enfocados al país Chile.

Modelo Location

Se tiene el siguiente modelo en rails:

Location
{
  :id => nil,
  :name => nil,
  :parent_location_id => nil
}

Dentro de la Clase Location, se tienen las siguientes asociaciones:

class Location < ActiveRecord::Base
  # associations
  belongs_to :parent_location, class_name: 'Location'
  has_many :locations, foreign_key: 'parent_location_id'
end

#Creando Países Lo primero que se debe crear, para mantener la consistencia entre las relaciones que habrán más adelante, son los países. La única diferencia que poseerá, respecto a las otras tablas, será que el atributo "parent_location_id" será Nil. Dicho eso, para la creación se debe utilizar la siguiente sintaxis:

Location.create(name:"Chile")

#Creando Regiones Una vez creado el o los países se podrán crear las regiones. Cabe destacar que también se pueden crear regiones sin la existencia de países, pero será necesario hacer las relaciones más adelante. El código para la creación de una región, siguiendo el ejemplo anterior, es el siguiente:

#igualamos la variable "p" a la Location de Chile
p = Location.find_by_name "Chile"
#a Chile le asignamos una región
p.locations<< Location.new(name: "BíoBío")

#Creando Provincias Luego de tener un país y una región, creamos una provincia con el siguiente código:

#primero igualamos la variable r a la región
r = Location.find_by_name "BíoBío"
r.locations<< Location.new(name: "Concepción")

#Obteniendo el nombre del padre Una vez creado un País, su región y provincia, resulta útil saber cómo acceder al nombre del padre o, en otras palabras, es necesario saber a cuál región pertenece cada provincia o a cuál país pertenece cada región. Para ésto, el código que nos permite obtener esta información, es el siguiente:

#igualamos la variable "c" a la Location en cuestión
c = Location.find_by_name "Concepción"
#Luego, para obtener el nombre de su región
Location.find(c.parent_location_id).name
#Para obtener el nombre del país de la región, se puede hacer lo siguiente
r = Location.find(c.parent_location_id)
#Después de igualar "r" a la región, aplicamos el mismo código, el cual nos dará el nombre del país
Location.find(r.parent_location_id).name

About

Un breve ejemplo sobre cómo crear Paises, provincias y ciudades, dado un modelo "Location"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published