2016-01-14 14 views
10

Próbuję utworzyć formularz, który ma tylko pole tekstowe i ukryte pole, którego zamierzam użyć podczas przekazywania danych do interfejsu API HTTP, więc nie mam model powiązany z nim, i przez rozszerzenie, bez zestawu zmian.przy użyciu form_for bez modelu lub zestawu zmian

Czy można to zrobić i użyć form_for lub czy wystarczy napisać HTML, aby utworzyć formularz?

+0

Cześć, Spike! Natknąłem się na to właśnie snoopin wokół pytań Phoenix. –

Odpowiedz

19

Możesz użyć form_for/4 przekazując Plug.Conn jako pierwszy argument.

Z the docs (w szczególności sekcja "Z danych połączenie")

form_for/4 oczekuje jak pierwszy argument dowolnej struktury danych, realizuje protokół Phoenix.HTML.FormData. By default, Phoenix implements this protocol for Plug.Conn, co pozwala nam tworzyć formularze oparte wyłącznie na informacjach o połączeniu.

Jest to przydatne, gdy tworzysz formularze, które nie są wspierane przez jakiekolwiek dane modelu, takie jak formularz wyszukiwania.

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

Dzięki! Dziś rano przejrzałem tę stronę, ale nie zauważyłem tej sekcji. To jest niesamowite. –

+3

Słowo kluczowe 'name' jest nieaktualne, a nowym słowem kluczowym jest' as' w wyrażeniu "form_for". –

Powiązane problemy