Rails form_for/form_tagメソッドについて
解決済
回答 2
投稿
- 評価
- クリップ 0
- VIEW 1,852
form_for/form_tagメソッドについてどなたか違いを
教えてくれませんか?
お願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
簡単にいえば、
- どちらでも同じことを記述するのは可能。
- モデルがあるデータに対しては、 form_for をつかうほうが簡単に記述できる。
ということのようです。
- フォームヘルパー http://ruby.studio-kingdom.com/rails/guides/form_helpers より
...
最も基本的なフォームヘルパーは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は特定のモデルが存在しない、汎用的なフォームで使用する。
...
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
ある特定のモデルオブジェクトを編集することに特化したメソッドです。
form_tagメソッドは
モデルに関係しないフォームを生成するためのメソッドです。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2014/09/25 15:35
回答ありがとうございました!!