RESTful вложенная обычная маршрутизация - PullRequest
0 голосов
/ 14 октября 2010

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

  • 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, как ожидается, создаст одну запись, если мы будем RESTful.Но предполагается, что код выглядит примерно так:

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

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

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

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

1 Ответ

1 голос
/ 14 октября 2010

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

...