Frage

Wird in Schienen die Verwendung von Formhelfern empfohlen?Intern läuft alles auf einfaches HTML hinaus. Warum also nicht das HTML direkt schreiben?Die Leistung ist beim Schreiben von direktem HTML offensichtlich besser als bei der Verwendung von Hilfsprogrammen.Ist die Verwendung von Formularhilfsmitteln eine Konvention oder etwas, das Rails-Entwickler befolgen müssen?

War es hilfreich?

Lösung

definieren Performance. Ihre Leistung oder die Anwendungen? Sagen Sie bitte die gleichen rhtml Snippet haben sich auszubreiten über Ihre Ansichten. Sagen Sie es in Tausenden von Orten haben. Vielleicht haben Sie auch nicht, dass es bekommen genau das gleiche in allen Orten. Jetzt ist Ihr Kunde möchte diese (vielleicht andere Reihenfolge der Präsentation oder so) ändern. Es dauert eine Weile, dies zu tun, in allen Ansichten, nicht wahr? Und die Chancen sind, werden Sie nicht bekommen es gleich beim ersten Mal. Die Chancen stehen in der Tat, dass Sie halten werde Bugreports für die Jahre gekommen Orte zu kommen, die Sie verpasst haben zu ändern.

Der Kunde wird viel dafür zu bezahlen, dass gewonnen „Performance“ enden. Vielleicht Hunderte von Arbeitsstunden. Zehntausende Vielleicht, wenn Sie das DRY-Prinzip grundsätzlich vermeiden. Denken Sie an alle Server und alle RAM sie stattdessen für die Arbeitsstunden kaufen konnte. Wenn sie es alle auf Hardware ihre Anwendung verbrachte vielleicht hundert Falten schneller laufen. Denken Sie an all die schönen Dinge könnten Sie arbeiten mit statt monkeying um HTML-Schnipsel zu ändern.

Andere Tipps

Ich denke, dass Form Helfer ein Spiegelbild der DRY ist (nicht selbst wiederholen) Prinzip. Anstatt den gleichen Code zu schreiben über ähnliche Aufgaben zu tun, ein Formular Helfer erstellen, die Sie, dass die Wiederverwendung von Code erlaubt ist der Weg zu gehen. Auf diese Weise, wenn Sie brauchen eine Änderung oder reparieren zu können, müssen Sie es nur an einem Ort zu tun. Es hilft auch, den Code kompakte und lesbar zu abstrahieren einer komplexen Handlung in eine Form Helfer zu machen. Das gleiche gilt für Teilansichten, obwohl Teilansichten sind in der Regel komplexe Auszeichnungs als eine Form Helfer verkapseln.

Die Form Helfer sind besonders nützlich, Schienen zu lassen behandeln Formen basierend auf dem Modell zu schaffen. Um das Beispiel der API-Dokumentation zu zitieren:

Der folgende Code

<% form_for :person, @person, :url => { :action => "create" } do |f| %>
  <%= f.text_field :first_name %>
  <%= f.text_field :last_name %>
  <%= submit_tag 'Create' %>
<% end %>

erzeugt diese HTML

<form action="/persons/create" method="post">
  <input id="person_first_name" name="person[first_name]" size="30" type="text" />
  <input id="person_last_name" name="person[last_name]" size="30" type="text" />
  <input name="commit" type="submit" value="Create" />
</form>

Sie können die HTML selbst schreiben, aber durch die Formular-Helfer verwenden Sie weniger eingeben müssen und die Formularerstellung macht weniger abhängig von der Schienen-Implementierung. Sie erhalten immer eine Form, die Daten in Ihr Modell schreibt, wenn Sie den Absenden-Button getroffen. Wenn die Schienen Entwickler immer die Implementierung dies ändern, erhalten Sie automatisch die richtige HTML-Ausgabe von Ihrem Helfer. Wenn Sie die HTML manuell geschrieben hatte, würden Sie müssen alle aktualisieren, um die Änderungen der inneren Funktionen von Schienen zu reflektieren.

Es scheint gut zu sein, wenn ein Entwickler denselben Namen für Klasse und ID und keinen Wert für ein Eingabefeld hat, wenn er einen anderen Namen und eine andere Namens-ID benötigt und auch einen Wert angibt, dann muss er schreiben <%= text_field_tag ​​" name", :value=>"value", :id=>"id" ,:class=>""class %> und für das gleiche HTML kann sein < Eingabetyp ="Text" Wert ="Wert" Klasse="Klasse" Name ="Name" id="id"/>Denken Sie jetzt über den Kopf 1. Werten Sie den ersten Helfer in HTML aus 2. Berücksichtigen Sie nun auch die Länge davon im Hilfsprogramm. Wir müssen außerdem Folgendes schreiben:, =>3. Manchmal vergisst man zu verwenden:Oder aus Versehen bevorzugen wir HTML in diesem Fall und eine Sache, wenn Ihr Server viel Anfrage erhält, als er zu beschäftigt ist und die Antwortzeit erhöht wird, weil < %= %> ausführen muss

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top