詰まったこと
railsでselectフォームを非活性にしたくて公式見に行ったら
オプションに disabled
をつけてくださいとのことだったので
%h3= f.label "学部・学課選択"
= f.collection_select :department_id, Department.all, :id, :name, disabled: true
ってやったんだけど、、、
めっちゃ普通にいじれちゃう、、、ってなりました。
検証で見てみても
やっぱりdisabledが付いてる気がしない、、、
解決方法
%h3= f.label "学部・学課選択"
= f.collection_select :department_id, Department.all, :id, :name, {}, disabled: true
結果としては空の引数を1つ渡してあげればいけました。
こうすると、クリックしても動かない非活性の状態になります
画像だとわかりにくいので改めて検証で見てみると
こんな感じでちゃんとdisabledのオプションが付いていることがわかります。
原因
改めて公式を見てみると
collection_select(オブジェクト名, プロパティ名, オブジェクトの配列, value属性の項目, テキストの項目 [, オプション])
となっていて、collection_selectのオプションはヘルパーメソッドの第6引数として渡していることがわかります。
ですが、最初の実装だと第5引数のところにオプションをのdisabledをつけてしまっていたのでうまく作動しなかったようです。
まとめ
忘れがちだけどrailsのform_forとかってあくまでrailsのhelperメソッドで
メソッド名(第1引数, 第2引数, ・・・)
っていうのが勝手に定義されててそれを使ってるわけだから、引数渡すタイミング考えてあげないとそりゃちゃんと動かないよな笑