はじめに
Railsのフォームのセレクト項目に、テーブルから検索した値を表示してみる。
環境
- Vagrant + Ubuntu 16.04.5 LTS
- PostgreSQL
- Rails 5.2.4.2
- slim
- Bootstrap4
やり方
Jichitaisテーブルに下記のデータが入っていて、セレクト項目のプルダウンに表示させます。
selectメソッドを使う方法と、collection_selectメソッドを使う方法とがあるが、基本的にどっちを使ってもOKだろう。しかし、セレクト項目に複数項目を表示させたい場合は、selectメソッドしか使えない事になる。
selectメソッドを使う
_form.html.slim
.form-group
= f.label :jichitai_id, "都道府県1", class: 'control-label'
= f.select :jichitai_id,
Jichitai.where('enduser_cd < 500').map{ |i| "#{i.id} #{i.enduser_cd} #{i.sikutyou}" },
{include_blank: true},
class: 'selectpicker form-control',
id: 'jichitai_1'
collection_selectメソッドを使う
_form.html.slim
.form-group
= f.label :jichitai_id, "都道府県2", class: 'control-label'
= f.collection_select :jichitai_id,
Jichitai.where('enduser_cd >= 500'), :enduser_cd, :sikutyou,
{include_blank: true},
class: 'selectpicker form-control',
id: 'jichitai_2'
参考