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.)
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
(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:
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!
Tags und Links ruby-on-rails dry