Quando temos que importar alguns dados, os nomes dos atributos não correspondem aos atributos do nosso modelo, então geralmente escrevemos alguns métodos de mapeamento personalizados. Mas talvez haja alguma solução já implementada para isso? A resposta é: Sim 🙂
gem install mapped_attributes
A gem mapped_attributes permite que você:
- mapear dados fornecidos para atributos de objeto
- fornecer namespace de definição de mapeamento personalizado
- definir mapeamento múltiplo para um único atributo
- atributos de mapa para as relações has_one e belongs_to se você estiver usando nested_attributes
Exemplo
data = {
'Project Name' => 'Testing One',
'Description' => 'This project is just for test',
'Task Name' => 'Get a Job Done',
'Deadline' => '2013-02-01'
'Comments' => 'Something something dark side'
}
project = Project.new
project.set_mapped_attributes(data)
project.save
Verifique o repositório gem para obter detalhes.