ぺろのなるほどブログ

ぺろがなるほどした話を書きます

【プルダウンを作ろうの回】collection_selectの引数の中身について

こんにちは、ぺろです。

今日はプルダウン作成のために、しばらく苦しんだ

collection_selectのお話

をしたいと思います。



■ゴール
プルダウンを作ってDB内の情報を表示する。


■使ったメソッド
form_with
collection_select


■詰まったこと
collection_selectの引数多すぎるけど、どこに何書いたらいいかわからへん。


■苦悩
collection_selectって第4引数まであってその後はoptionつけたりつけなかったりですが、そうなんですよ、なんぼ調べても、どこに何書いていいか全然わからんかったんですよ😇

Ruby on Rails API先生( https://api.rubyonrails.org/ )に聞いてみても、

collection_select(method, collection, value_method, text_method, options = {}, html_options = {})

なるほどわからん
日本語にしてちゃんと説明してくれている方のサイトもあったのですが、
結局自分がやりたいことに応用出来ず、よくわからないままでした。

結構な時間をかけて色んなパターンを書いて試して、最終的にこうすれば一番うまく行ったということを、
ぺろの言葉でここにメモしておきます。

注) あくまでも個人の解釈です。


■こうやって書いたらうまく行きました。

collection_select(情報を保存したいカラム名, プルダウンに表示したいリストの場所, 取得するバリュー, 表示したいカラム名)


例)

countries_controller.rb

@country = Country.new(country_params)

new.html.erb

<%= form_with model: @country do |f| %>
  <%= f.collection_select(:city_id, City.all, :id, :city_name) %>
<% end %>


この後、取得した情報の保存が出来なくて、また苦しむことになりますが、それはまた別の機会に😇
歯を食いしばって手を動かすしかないですというのは、igaiga先生(@igaiga555)のお言葉でした🙏

頑張るぞ〜い!