Rails: Die 'show' Ansicht und 'edit' Ansicht stimmen überein

9

Verwenden von Rails 2.3.5, Ruby 1.8.7.

Gibt es ein Plugin, das es einfacher macht, meine "show" -, "edit" - und "new" -Seiten gleich aussehen zu lassen? Ich würde gerne in der Lage sein, die folgende Art von Sache zu tun. Wenn ich jetzt meinem Modell ein Feld hinzufüge, muss ich es sowohl der Datei edit.html.erb als auch der Datei view.html.erb hinzufügen. Ich möchte in der Lage sein, das Aussehen ziemlich ausführlich zu spezifizieren, aber ich möchte, dass "edit" und "show" gleich aussehen (Mit Ausnahmen zwischen den beiden, vielleicht, aber nicht vielen.)

Gibt es dafür ein DRY-Tool?

Grundsätzlich möchte ich meine "edit.html.erb" zu:

machen können %Vor%

und die show.html.erb sind:

%Vor%

Dann würden "form_helper" und "show_helper" dieselben Interfaces implementieren (mit einer gewissen Fähigkeit zu verzweigen, um kleine Unterschiede zwischen dem Layout / Aussehen der beiden zu machen.)

    
Thomas Andrews 31.03.2011, 18:50
quelle

3 Antworten

3

Es gibt ein Plugin!

Ссылка

Es ist sehr flexibel. Stellen Sie sicher, dass Sie die richtige Version für Schienen 2.3 verwenden

    
amitkaz 07.04.2011 19:12
quelle
2

Ich mache etwas wie das, was Sie beschreiben, mit benutzerdefinierten Eingabe- / Display-Hilfsfunktionen. Für ein vereinfachtes Beispiel könnten Sie eine Funktion haben, die Sie so nennen würden:

%Vor%

Und in Ihrem Controller setzen Sie eine @context Variable entweder auf :show oder :edit . Der Helfercode enthält einen Schalter auf @context , und wenn er :edit ist, gibt er etwas wie

aus %Vor%

(möglicherweise verwenden Sie eine allgemeine @model Variable in all Ihren Controllern, so dass die gleiche Funktion auf all Ihren Seiten verwendet werden kann - oder @my_model an die Funktion selbst übergeben), aber wenn @context ist :show (oder vielleicht standardmäßig), gibt es so etwas aus:

%Vor%

So können Sie jetzt den gleichen genauen Code verwenden, um alle Ihre Felder anzuzeigen! Wahrscheinlich möchten Sie diesen Code in einen partiellen Code umwandeln, damit Sie ihn leicht in ein Formular für die Bearbeitung einfügen können, aber nicht für die Show, aber das kritische Bit ist erreicht - wenn Sie Felder hinzufügen / verschieben / löschen müssen, es gibt nur einen Ort, an dem du es tun musst.

Hoffe, das hilft!

    
Xavier Holt 31.03.2011 19:10
quelle
0

Fügen Sie dieses Snippet in eine _form.html.erb ein und rufen Sie es dann in einer gemeinsamen partiellen Datei wie show.html.erb

auf

Dann zeige und editiere in deinem Controller den gleichen Teil (show.html.erb) oder etwas ähnliches.

    
corroded 31.03.2011 18:54
quelle

Tags und Links