私はモデルを持っています:
User -1---n- Transaction(amount,description, date)
User -1---n- TransactionImport -1---n- TransactonImportField(name,value)
(個人経費追跡アプリ)。
私が達成したいのはこれです:
- ユーザーは URL を開き、トランザクションのリストを含む CSV を貼り付けます。
- ユーザーが送信します。
- システムは、CSV から
TransactionImport
(行) +TransactionImportField
(セル) にデータを抽出します。 - ユーザーは、インポートされたデータから、どの列が何を意味するか (金額、説明、日付) を選択できます
TransactionImport(Field)
。 - ユーザーが保存をクリックすると、システム
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に収まらないと感じているため、おそらく間違った角度からタスクに取り組んでいます。
これを実装する最も一般的な方法を教えてください。
ありがとう、
ドミトリー。