Ich schreibe eine Anwendung, die einen Eingabebereich vom Typ "Assistent" hat. Denken Sie an MS Windows Installer.
Ich habe eine harte Zeit herauszufinden, wie die meisten RESTful Weg, dies mit Schienen zu tun. Ich kann es in einer nicht-restful Weise geschehen (bereits für Version 1 der app), aber ich versuche, ein wenig mehr idiomatisch dieses Mal herum sein.
Die Situation ist wie folgt. Ich habe einen 5-stufigen Assistenten, der Informationen sammeln soll. Die Schritte 1, 2 und 4 befassen sich mit Ressource A. Schritt 3 befasst sich mit Vielfachen von Ressource B und muss sie mit Ressource A verknüpfen. Schritt 5 ist nur eine Bestätigung.
Ich habe also meine resourceA_controller und meine resourceB_controller ... aber sie nur speichern/aktualisieren, dass eine Ressource. Ich vermute, dass ich eine wizard_controller für jeden der Schritte im Prozess einrichten sollte, aber ich bin nicht sicher, wie das Routing funktionieren sollte.
Zum Beispiel...
WizardController < ApplicationController
def stepOne
@resourceA = ResourceA.new
end
def stepTwo
@resourceA = params[:id]
end
...
def stepFive
end
end
Und dann würde ich meinen Blick auf die StepOne-Ansicht richten:
<form action='/resourceA/new'/>
und bei der StepTwo-Aktion
<form action='/resourceA/12345/edit'/>
usw.
Aber dann müssten meine resourceA- und resourceB-Controller wissen, wie sie an den entsprechenden Schritt im wizard_controller weiterleiten können. Verwirrendes Durcheinander!
Bin ich auch nur annähernd auf dem richtigen Weg? Oder gibt es einen in Rails eingebauten Mechanismus oder ein Plugin, das diese Art von Dingen tut.