web-dev-qa-db-ja.com

モデルやチェンジセットなしでform_forを使用する

HTTP APIにデータを渡すときに使用するテキストフィールドと非表示フィールドだけを持つフォームを作成しようとしているので、モデルが関連付けられていません。ひいては、チェンジセット。

これを実行してform_forを使用することは可能ですか、それともHTMLを記述してフォームを作成するだけの答えですか?

17
Spike Grobstein

form_for/4 を使用して、最初の引数としてPlug.Connを渡すことができます。

から ドキュメント (具体的には「接続データあり」セクション):

form_for/4は、Phoenix.HTML.FormDataプロトコルを実装するデータ構造を最初の引数として想定しています。 デフォルトでは、PhoenixはPlug.Connにこのプロトコルを実装しています 、接続情報のみに基づいてフォームを作成できるようにします。

これは、検索フォームなど、いかなる種類のモデルデータにも裏付けられていないフォームを作成する場合に役立ちます。

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