はじめに
新規登録画面に、別モデルのdepartmentの選択を追加したところ、
deviseのエラーメッセージが出なくなってしまいました
その実装は②でやっています。
パスワードを空で送ると、、
NoMethodErrorが出てくる。あーーーーーー!
required: true 入れれば問題解決じゃないの!?
required: trueとは、、、
<div class="form-group">
<%= f.label :name,"お名前" %><br />
<%= f.text_field :name, autofocus: true,required: true,class:"form-control" %>
</div>
あのエラーは出なくなった!
そもそも、未入力のものは受け付けないので、エラーメッセージすら出ません。 未入力ならあらかじめ「このフィールドを入力してください」と出ます。クサイものに蓋をしている ような違和感
確かにエラーは出ないし、使う分には何の問題もなさそうなんだけど、、、 これで良いのか....??結論
良くない! 以下のページで同じような質問がされています。
そもそも、required: trueは入力必須なので、「一文字」でも進んでしまいます。
パスワードを6文字以上というバリデーションかけてた場合には
ちゃんとエラーメッセージ出るようにしてあげないと、いけません。
エラー解消
以下のように修正したところエラーは解消されました。
<div class="form-group">
<%= f.label:"所属先" %><br />
<%= f.collection_select(:department_id, Department.all, :id, :name, class: "form-control") %>
</div>