La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Single Table Inheritance Herencia de tablas con Rails :) por Nelson Rojas Núñez www.profenelson.cl.

Presentaciones similares


Presentación del tema: "Single Table Inheritance Herencia de tablas con Rails :) por Nelson Rojas Núñez www.profenelson.cl."— Transcripción de la presentación:

1 Single Table Inheritance Herencia de tablas con Rails :) por Nelson Rojas Núñez

2 El problema Ads -name -body -published Posts -name -body -published Pages -name -body -published Las tres tablas apuntan a elementos diferentes, tienen los mismos campos, pero usan 3 tablas en la base de datos. class Ad < ActiveRecord::Base class Post < ActiveRecord::Base class Page < ActiveRecord::Base

3 Usando Single Table Inheritance Entries -name -body -published -type class Entry < ActiveRecord::Base AdPostPage class Ad < Entryclass Post < Entryclass Page < Entry

4 Ejemplo $ rails demo demo$ ruby script/generate model entry name:string body:text published:boolean type:string demo$ rake db:migrate demo$ ruby script/generate model post --skip-migration demo$ ruby script/generate model ad --skip-migration demo$ ruby script/generate model page --skip-migration Las Clases class Entry < ActiveRecord::Base end class Page < Entry end class Post < Entry end class Ad < Entry end

5 Usemos la consola para probar >> o = Post.new >> # >> o.name = "mi primer post" >> o.body = "este es el cuerpo de mi primer post" >> o.published = true >> o.save >> p = Page.new >> # >> p.name = "mi primera pagina" >> p.body = "este es el cuerpo de mi primera pagina" >> p.published = true >> p.save >> Entry.count => 2 >> Post.count => 1 >> Page.count => 1

6 Conclusiones Lo bueno Permite realizar búsquedas en un único lugar para cosas diferentes. Menos código para mantención. Herencia elegante :) Lo malo No es la panacea, por tanto no abusar de ella cuando los elementos requieren tratamientos diferentes. Una mala idea es hacer herencia con órdenes de compra, facturas y guías.

7 Enlaces table-inheritance/ table-inheritance/


Descargar ppt "Single Table Inheritance Herencia de tablas con Rails :) por Nelson Rojas Núñez www.profenelson.cl."

Presentaciones similares


Anuncios Google