2009-05-13 13 views
3

Ich habe ein Modell mit vielen Feldern (fast 40). Der Kunde möchte, dass die Felder auf mehrere Bildschirme aufgeteilt sind. Das Modell hat auch ein paar has_manys, die aussehen sollten als wären sie Teil desselben Modells.Schienen, ein Modell, viele Bildschirme

Wie kann man das Modell teilen, und was sind die Kompromisse zwischen den Möglichkeiten, es zu tun?

Ich sehe ein paar Möglichkeiten:

1) Verwenden Sie JavaScript um zu zeigen, und Teile der Form zu verstecken. Ich denke, ich kann das eine Arbeit machen.

2) Verwenden Sie Formulare, die an verschiedene Aktionen übergeben. Kann form_für geeignete Optionen verwendet werden?

Ich bin auf der Suche nach anderen Ideen auch.

Antwort

2

Auschecken acts as state machine. Sie können dies verwenden, um Assistenten und Ähnliches zu erstellen.

Haben Sie Ihre Frage erneut gelesen, ich glaube, Javascript ist wirklich das, wonach Sie suchen. Check out jQuery UI, sie haben eine Registerkarte Komponente, die wahrscheinlich helfen wird.

+0

Danke für den Link, Tim. Ich verstehe State-Maschinen gut, aber nicht sehen, wie dies helfen wird, da ich keinen Zustand haben oder in einer bestimmten Reihenfolge fortfahren muss. Oder, wenn ich einen Zustand habe, wie bekomme ich bestimmte Teile des Formulars auf der Seite und bekomme diese richtig zu aktualisieren? – Chris

+0

Vielleicht habe ich die Frage falsch verstanden. Wenn Sie nur Objekte anzeigen und ausblenden möchten, ist Javascript der richtige Weg. Wenn Sie den Inhalt eines einzelnen Formulars auf mehrere Seiten verteilen möchten, können Sie mit einem SSM die Seite verfolgen, auf der Sie sich gerade befinden, und einen Mechanismus zum Verschieben zwischen ihnen bereitstellen. Nachdem ich deine Frage erneut gelesen habe, denke ich, dass Javascript wirklich das ist, wonach du suchst. Schauen Sie sich die jQuery UI an, sie haben eine Tab-Komponente, die wahrscheinlich hilft. –

+0

Ich begann zu schreiben, um jQuery UI und Tabs zu verwenden ... das einzige Problem mit diesem könnte Usability sein - es ist möglicherweise für den Benutzer nicht klar, wo Validierungsfehler auftreten. –

1

Ich würde das ActsAsWizard Plugin überprüfen. Macht es sehr einfach, einen Assistenten so zu machen.

Überprüfen Sie die Readme, es ist ausgezeichnet.

+1

Beachten Sie, dass ActsAsWizard erfordert, dass die 40 Felder in dem einen Modell in Modelle unterteilt werden. Es ist eher für den Aufbau der Dateneingabe für ein Objekt und dessen Beziehungen über den Assistenten, anstatt ein großes Modell zu erstellen. – srboisvert