Rails
Rails5

text_fieldのdisabledオプションがtrueの場合は値がparamsに入らない

Railsのフォームは癖があって慣れるまでに時間が掛かりますね。

こんな時どうする

ビューの中のフォームを使用不可の状態で値だけコントローラー側に投げたい

そのフォームと関連するカラムに「NOT NULL」制約を設けている場合は困りますね。

こうする

フォームオプションのdisabledが有効の場合はparamsに値が入らないため、こういう場合はreadonlyを有効にする。

<%= f.text_field name, disabled: true %> <!-- Not good -->
<%= f.text_field name, readonly: true %> <!-- Good -->

参考記事

text_fieldをdisabledにすると、その項目は保存されなかった。- ぶつかるまでムーンウォーク