Вопрос

У меня есть модель:

  • User -1---n- Transaction(amount,description, date)
  • User -1---n- TransactionImport -1---n- TransactonImportField(name,value)

(Приложение для отслеживания личного расхода).

Что я хочу достичь, это это:

  1. Пользователь открывает URL-адрес и пассы CSV со списком транзакций.
  2. Пользователь представляет это.
  3. Система извлекает данные из CSV в TransactionImport (ряд) + TransactionImportField (клетка).
  4. Пользователь может выбрать, какой столбец означает, что (сумма, описание, дата) из импортированных данных в TransactionImport(Field).
  5. Пользователь Нажмите Сохранить и системные передачи TransactionImport в транзакцию.

То, что я не могу получить правильно, это тот факт, что шаг 3 создает несколько записей TransactionImport (и связано TransactionImportField).

Так что делает POST /transaction_imports?csv=abcd Ожидается, что сделает одну запись, если бы мы будем спокойны. Но код должен быть что-то вроде этого:

# TransactionImportsController
def create
  result = TransactionImports.parse(params[:csv])
  flash[:notice] = result.message
  redirect_to transaction_imports_path
end

Я, вероятно, приближаюсь к задаче с неправильного угла, так как я чувствую, что реализация не подходит в TP унаследовано_респорты.

Не могли бы вы посоветовать, какой был бы самый обычный способ реализации этого?

Спасибо,
Дмитрий.

Это было полезно?

Решение

Отдых / HTTP не ожидает, что пост будет создать только одну запись. Это, возможно, поведение рельсов по умолчанию, но вы не должны ограничивать ваш дизайн из-за этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top