Импорт CSV из URL-адреса и экспорт в формате XML - Rails

Два вопроса:

  1. Как я могу импортировать файл с веб-адреса, без формы?

    Пример: Organisation.import (: from => ' http://wufoo.com/report.csv ')

  2. Как я могу использовать XML Builder без извлечения из БД?

Больше информации

Моя компания использует wufoo для веб-форм. Данные из wufoo экспортируются в виде CSV-файлов. Чтобы получить данные в cms моей компании, они должны быть отформатированы как xml. Мне не нужно хранить какие-либо данные, кроме URL в файл CSV. Я думал, что это может хорошо работать как простое приложение для рельсов.

12.10.2009 23:36:59
2 ОТВЕТА

Используйте open-uri ( http://www.ruby-doc.org/stdlib/libdoc/open-uri/rdoc/ ), чтобы получить файл, и библиотеку csv ruby, чтобы проанализировать его. Или используйте csv-mapper, который прост и удобен ( http://csv-mapper.rubyforge.org/ ).

1
13.10.2009 14:26:13
РЕШЕНИЕ

Вот способ:

require 'rio'
require 'fastercsv'

url = 'http://remote-url.com/file.csv'
people = FasterCSV.parse(rio(url).read)

xml = ''
1.upto(people.size-1) do |row_idx|
  xml << "  <record>\n"
  people[0].each_with_index do |column, col_idx|
    xml << "    <#{column.parameterize}>#{people[row_idx][col_idx]}</#{column.parameterize}>\n"
  end
  xml << "  </record>\n"
end
0
5.11.2009 17:51:57