RESTful enrutamiento convencional anidada
-
30-09-2019 - |
Pregunta
Tengo el modelo:
-
User -1---n- Transaction(amount,description, date)
-
User -1---n- TransactionImport -1---n- TransactonImportField(name,value)
(gasto personal seguimiento de la aplicación).
Lo que quiero lograr es la siguiente:
- Se abre Usuario URL y pega la CSV con la lista de las transacciones.
- somete usuario a él.
- Datos del sistema extractos de CSV en
TransactionImport
(fila) +TransactionImportField
(celular). - El usuario puede elegir qué medias de columnas lo que (cantidad, descripción, fecha) a partir de los datos importados en
TransactionImport(Field)
. - El usuario haga clic en Guardar y la
TransactionImport
sistema transfiere a la transacción.
Lo que parece que no puede hacerlo bien es el hecho de que el paso 3 crea múltiples registros de TransactionImport
(y TransactionImportField
relacionada).
Se espera que POST /transaction_imports?csv=abcd
Al hacerlo para producir un registro si queremos ser reparador. Sin embargo, el código se supone que es algo como esto:
# TransactionImportsController
def create
result = TransactionImports.parse(params[:csv])
flash[:notice] = result.message
redirect_to transaction_imports_path
end
probablemente estoy acercando a la tarea desde un ángulo equivocado ya que siento que la aplicación no cabe en el tp inherited_resources .
¿Podría usted por favor avise lo que sería la forma más convencional de implementar esto?
Gracias,
Dmytrii.
Solución
REST / HTTP no tiene ninguna expectativa de que la POST haciendo sólo creará un registro. Que tal vez el defecto carriles de comportamiento, pero no se debe limitar su diseño debido a eso.