2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails form_withの使い方

Last updated at Posted at 2021-08-18

使用環境
ruby2.6.8
rails6.1.4

#form_withとは
railsで情報を送信するためのヘルパーメソッド。
form_withを使うことにより、簡単に入力フォームに必要なHTMLを作成することが可能。
rails5.1から追加されたフォームを作成するためのヘルパーメソッドで、それ以前に用いられていたform_tagやform_forのように用いられている。
(現在はform_withを使うことが推奨されている)

#form_withの使い方

form_tagのように入力された情報をデータベースに保存しない場合

<%= form_wth url: "パス" do |f| %>
    内容
<% end %>

データベースに保存する場合

<%= form_with model: モデルクラスのインスタンス %>
    内容
<% end %>

上のようなデータベースに保存する場合でもpathの指定は可能で

<%= form_with model: モデルクラスのインスタンス,url: "パス" %>
    内容
<% end %>

のような形で書くことで予期せぬエラーを私は解決することができた。

ここでいう「モデルクラスのインスタンス」とは保存したいテーブルのクラスのインスタンスのこと。今回はpostテーブルに新たにレコードを追加したかったので、コントローラ側で以下のように記述した

def new
    @post = Post.new
end

この@postをview側で記述すればよい。

#form_withで使用できるhtmlタグ

メソッド 用途
form.text_field 一行のテキスト投稿フォーム
form.text_area 複数行のテキスト投稿フォーム
form.number_field 数値入力ボックスを生成
form.search_field 一行の検索フォーム
form.email_field メールアドレス入力ボックスを生成
form.check_box データベースの情報を使わないでチェックボックスを生成
form.collection_check_boxes データベースの情報を元にチェックボックスを生成
form.select 選択肢を作成
form.collection_select データベースの情報を元に選択肢を生成
form.file_field ファイル選択ボックスを生成
form.datetime_field 日時の入力欄を生成
form.date_select 日付選択ボックスを生成
form.hidden_field 非表示のフォーム
form.submit 送信ボタンの生成

参考記事

https://pikawaka.com/rails/form_with
https://rails-ambassador.herokuapp.com/tips/FormWithHelper

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?