É preciso demonstrar uma funcionalidade da aplicação para o cliente, mas para isso é necessário realizar diversos cadastros e gerar informações na base de dados. Dependendo da quantidade de registros, fazer isso manualmente acaba ficando muito chato além de consumir um longo tempo.
Procurando uma maneira de automatizar esse processo, encontrei a gem Populator que facilita e muito esse trabalho.
Como Usar:
Primeiro instale a gem
sudo gem install populator
Após instalar, no console já podemos fazer algo como:
>> require 'populator'
=> []
>> Category.count
=> 0
>> Category.populate(10) { |category| category.name = Populator.words(1..3).titleize }
=> {}
>> Category.count
=> 10
>> Category.first
=> #<Category id: 1, name: "Fuga Debitis Temporibus", created_at: "2009-06-13 14:17:24", updated_at: "2009-06-13 14:17:24">
>>
Existem alguns metodos que podemos usar para gerar alguns dados como:
Populator.words(5) # gera 5 palavras aleatoriamente e insere um espaço entre elas
Populator.words(1..3) # gera entre uma e três palavras aleatoriamente
Populator.sentences(3) # gera 3 frases
Populator.paragraphs(2) # gera 2 paragrafos
Mas dependendo to tamanho de nosso model, ficar digitando tudo isso pelo console acaba dando muito trabalho também. Vamos melhorar isso!
Crie um novo arquivo em lib/tasks/populate.rake e crie a seguinte tarefa:
namespace :db do
desc "Popula base de dados"
task :populate => :environment do
require 'populator'
Category.populate 30 do |category|
category.name = Populator.words(1..3).titleize
end
end
end
Agora dentro do diretório da aplicação, basta rodar a tarefa:
rake db:populate
Bem melhor
Podemos melhorar ainda mais este processo e deixar ele mais completo utilizando a gem Faker que gera dados como nome, telefone, endereço, e-mail e pode ser usada junto com a Populator.
Vale a pena assistir a este Railscast onde é demonstrado como utilizar as duas gems.
É isso ai!





