0

私はモデルを持っています:

  • 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 である場合、1 つのレコードが生成されることが期待されます。しかし、コードは次のようになっているはずです。

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

実装がinherited_resourcesに収まらないと感じているため、おそらく間違った角度からタスクに取り組んでいます。

これを実装する最も一般的な方法を教えてください。

ありがとう、
ドミトリー。

4

1 に答える 1

1

REST/HTTP は、POST を実行してもレコードが 1 つしか作成されないことを期待していません。これはおそらくレールのデフォルトの動作ですが、そのために設計を制限するべきではありません。

于 2010-10-14T11:30:47.480 に答える