対象者
- Rails 初学者.
目次
実現したいこと.
作り方の全体像.
実際に手を動かして作ってみた.
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カラム.
第二引数⇨ ['ホワイト', 'クリーム','グレー'].
第三引数⇨選択肢のデフォルト値
以上です