Railsで登場する、
form_for/form_tagメソッドについてどなたか違いを
教えてくれませんか?
お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
3 つの参考ページを紹介します。
簡単にいえば、
- どちらでも同じことを記述するのは可能。
- モデルがあるデータに対しては、 form_for をつかうほうが簡単に記述できる。
ということのようです。
...
最も基本的なフォームヘルパーはform_tagです。
...
我々は何とかしてフォームをモデルオブジェクトに紐付けたいと考え、form_forを作りました。
...
5. アップロードファイル
...
ファイルアップロードにおいて覚えておいてもらいたい最も重要な事は、 出力するフォームのエンコーディングを"multipart/form-data"にしなければいけないという事です。 もし、form_forを使用しているのであれば、これはそれを自動的に行なってくれます。 もし、form_tagを使用しているのであれば、 下記の例についても、それぞれ自分でこの設定を行わなければいけません。
下記のどちらのフォームも、ファイルをアップロードします。
<%= form_tag({action: :upload}, multipart: true) do %>
<%= file_field_tag 'picture' %>
<% end %>
<%= form_for @person do |f| %>
<%= f.file_field :picture %>
<% end %>
...
- Railsでフォームを作るときに使う『form_for』と『form_tag』の違い http://code.materializer.co/15 より
...
「form_tag」と「form_for」どちらを使うべきかは、基本的にモデルの有無で判断します。入力フォームで入力するデータのモデルがあれば「form_for」を使い、入力するデータが特にモデルを持っていなければ「form_tag」を使います。
form_for: モデルがあるデータを扱うときに使う。(記事投稿フォームなど)
form_tag: モデルがないデータを扱うときに使う。(検索フォームなど)
...
- form_forとform_tag、text_fieldとtext_field_tagの使い分け http://qiita.com/tmks0820/items/417b8e76d385db288e1b より
...
form_forは特定のモデルを編集、追加する際に使用する。
form_tagは特定のモデルが存在しない、汎用的なフォームで使用する。
...
投稿2014/09/22 15:18
総合スコア22324
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/09/25 06:35