2016-01-14 16 views
10

Ich versuche, ein Formular zu erstellen, das nur ein Textfeld und ein ausgeblendetes Feld enthält, das ich beim Übergeben von Daten an eine HTTP-API verwenden möchte, also habe ich keine Modell zugeordnet, und durch Erweiterung, keine Änderungsmenge.Verwenden von form_for ohne Modell oder Änderungssatz

Ist es möglich, dies zu tun und form_for verwenden oder ist die Antwort nur HTML zu schreiben, um das Formular zu erstellen?

+0

Hallo, Spike! Stolperte darüber einfach nur um Phoenix Fragen herumschnüffeln. –

Antwort

19

Sie können form_for/4 als erstes Argument eine Plug.Conn übergeben.

Von the docs (speziell die "Mit-Verbindungsdaten" -Abschnitt):

form_for/4 erwartet als erstes Argument jeder Datenstruktur, die das Phoenix.HTML.FormData Protokoll implementiert. By default, Phoenix implements this protocol for Plug.Conn, ermöglicht es uns, Formulare nur basierend auf Verbindungsinformationen zu erstellen.

Dies ist nützlich, wenn Sie Formulare erstellen, die nicht von einer Art von Modelldaten wie einem Suchformular unterstützt werden.

<%= form_for @conn, search_path(@conn, :new), [as: :search], fn f -> %> 
    <%= text_input f, :for %> 
    <%= submit "Search" %> 
<% end %> 
+0

Danke! Ich habe diese Seite heute Morgen überflogen, aber diesen Abschnitt nicht bemerkt. Das ist fantastisch. –

+3

Das Schlüsselwort 'name' ist veraltet und das neue Schlüsselwort ist' as' in 'form_for'. –

Verwandte Themen