Ingresando datos de prueba en rails

Standard

Hola a todos espero y tengan un buen día. Hoy vamos a hablar un poco acerca de cómo ingresar datos a una tabla en nuestra base de datos de una manera más controlada, mientras trabajamos con rails. Seguramente alguna vez se les habrá presentado la necesidad de tener datos de prueba dentro de una tabla, y seguramente como yo no querrán estar ingresando datos uno por uno, hasta tener una colección lo bastante grande para su propósito. Pues bien rails tiene la habilidad de poder sembrar datos de una manera muy sencilla. Bien, ¡pues empecemos!

Para nuestro propósito, únicamente tenemos que modificar el archivo seeds.rb que se encuentra dentro del directorio db.

Para poder realizar esto, tenemos que correr una migración para poder crear nuestra tabla en la BD y su respectivo modelo; este último permite a nuestra aplicación usar dicha tabla. También es necesario crear nuestro controlador y las vistas correspondientes. Podemos hacer todo esto de una manera muy sencilla usando el comando scaffold de rails. Este comando creará nuestro modelo el controlador y las vista con una sencilla instrucción.

1
rails generate scaffold Product title:string description:text image_url:string price:decimal

Una vez hecho esto, necesitamos correr la migracion:

1
rake db:migrate

Muy bien, ahora para poder poblar nuestra tabla usaremos un simple script de sql. Insertaremos solo unos pocos registros como ilustración pero puedes ingresar los que necesites. Cabe mencionar que rails ingresa los campos created_at y updated_at para cada tabla y es necesario darle valores de otra manera nos marcaría un error de que el campo no puede ser null:

1
2
connection = ActiveRecord::Base.connection()
connection.execute("INSERT INTO Products (title,description,image_url,price,created_at,updated_at) VALUES('COFFESCRIPT','DESCRIPCION','coffe.jpg',3.1416,'2011-09-10 14:44:24','2016-09-10 14:44:24'),('javaScript','DESCRIPCION','javascript.jpg',3.1416,'2011-09-10 14:44:24','2016-09-10 14:44:24'),('jquery','DESCRIPCION','jquery.jpg',3.1416,'2011-09-10 14:44:24','2016-09-10 14:44:24')")

Otra manera de ingresar datos es usando el método create()!, veamos cómo podríamos hacerlo:

1
2
3
4
5
6
7
8
9
10
11
Product.create!(title: 'Programming Ruby',
description:
%{<p>
Ruby is the fastest growing and most exciting dynamic language
out there. If you need to get working programs delivered fast,
you should add Ruby to your toolbox.
</p>},
image_url: 'ruby.jpg',
price: 49.95)
#Note que de esta manera no tenemos que especificar los campos created_at y
# updated_at.

Las imágenes fueron previamente ingresadas dentro del directorio app/assets/images. Muy bien casi terminamos, ahora solo nos falta poblar nuestra tabla usando el siguiente comando:

1
rake db:seed

Hemos terminado, espero y sea de su agrado y nos veremos hasta la próxima, tengan un excelente día.

Leave a Reply

Your email address will not be published. Required fields are marked *