オーダーメイドコース
icon
icon

Railsのform_forの書き方を現役エンジニアが解説【初心者向け】

初心者向けにRailsのform_forの書き方について現役エンジニアが解説しています。form_forはRailsでフォームタグを生成する場合に使用します。モデルが無い場合はform_tagを使用します。Rails5.1からはform_widthも使えるようになっています。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Railsのform_forの書き方について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Railsのform_forの書き方について詳しく説明していくね!

大石ゆかり

お願いします!

 

Railsのform_forとは

form_forとは、Railでフォームタグを簡単に作成するためのメソッドです。

使い方をマスターすれば、コーディングがずっと楽になります。Railsでアプリケーションを作成する際に、ほぼ必須のヘルパーなので、ぜひマスターしてください。

似たヘルパーとして、form_tagがあります。こちらもフォームタグを作成するメソッドですが、モデルに基づくformには、form_forをモデルに基づかないformには、form_tagを使用することが多いです。

例えば、ユーザーの登録や情報の更新機能にはform_forを、検索機能にはform_tagを使用する、などといったように使い分けます。

Railsのform_forの書き方

form_forは以下のように書きます。

<%= form_for(モデル,[オプション]) do |f| %>
    フォームの中身
<% end %>

モデルの部分には、@userや@postなどモデルオブジェクトを入れます。オプションでは、送信先のurlやタグの設定(クラスをつけたり、MIMEタイプを指定したり)をします。

Railsでは、自動で送信先の振り分けが行われるので、基本的にurlオプションは操作しなくてよいです。画像を送信したい場合やformタグにクラスをつけたい場合は、以下のように書きましょう。

<%= form_for(@user,:html => {:class => "field", :multipart => true}) do |f|%>
<% end %>

 

[PR] 未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

それでは実際に書いてみましょう。今回はてtext_feildを使用して、簡単なフォームを作成します。Postモデルがstring型でcontentというカラムをもっているとして、フォームを書いてみましょう。

<%= form_for (@post, :html => { :class => "field"}) do |f| %>
  <%= f.label :content %>
  <%= f.text_field :content %>
  <%= f.submit "送信する" %>
<% end %>

f.とすることで、ポストモデルとlabelやテキストボックス(text_field)を紐づけることができます。f.labelは、contentのラベルタグを生成しf.text_fieldは、contentのテキストボックスを生成します。f.submitがこのフォームの送信ボタンを作成しています。

以上で、解説を終わります。よく使うメソッドなので押さえておきましょう。

 

筆者プロフィール

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。