ume

railsでセレクトボックスの作成

対象者

目次

  1. 実現したいこと.

  2. 作り方の全体像.

  3. 実際に手を動かして作ってみた.

1. 実現したいこと.

  • railsでセレクトボックスを作成してみる.
    ↓セレクトボックス

注意点:今回はセレクトボックスの選択肢はデータベースのカラムの値にします.
選択肢はcolorカラムの「クリーム、ホワイト,グレー」にします。

作り方の全体像.

①form_withでフォーム作成.
②label作成.
③selectボックスの作成.

実際に手を動かして作ってみた.

form_withとは.
⇨フォームを生成するものです。 フォームとは? ↓.
このようなアカウント登録する際に入力するものです.
form_withとは.
⇨2つ(form_tagとform_for)の機能が1つになったもの ↑2つの機能の違いはデータベースにフォームの内容をデータベースに保存するかしないかです。

form_withは2つの書き方があります.
1つ目⇨form_withでform_tag(データベースに保存なし)の機能を使いたい時.
2つ目⇨form_withでform_for(データベースに保存あり)の機能を使いたい時.

今回は1つ目の方法で作成します。

<%= form_with url: "パス" do |form| %>
  <!--フォーム内容 -->
<% end %>

url: "パス"の部分はルーティングが入ります.
routes.rb↓

  get '/index', to: 'cats#index'

今回はcatsコントローラのindexアクションにフォームの内容を送りたいのでget '/index'のindexを指定します.

<%= form_with url: "/index" do |form| %>
  <!--フォーム内容 -->
<% end %>

②ラベルの作成.

ラベルとは上のフォームの画像の「お名前」、「メールアドレス」などの部分.

<%= f.label :カラム名 %>
<%= form_with url: "/index" do |form| %>
<%= f.label :color,"毛色" %>
<% end %>

第二引数”毛色”がないと、colorと英語で表示するためわかりにいからです。

③selectボックスの作成.

<%= f.select :カラム名、配列(選択肢の中身)、オプション %>

↑が構文です.
埋めてみると.

<%= f.select :color, ['ホワイト', 'クリーム','グレー'], { prompt: '選択してください' } %>

今回catテーブルの中のcolorカラムの中の「ホワイト」「グレー」「クリーム」という値の選択肢を使いたいので.
第一引数⇨colorカラム.
第二引数⇨ ['ホワイト', 'クリーム','グレー'].
第三引数⇨選択肢のデフォルト値

以上です