質問: 現在,postに関連するcategoryをcategory一覧から投稿時にチェックしてもらうプログラムを書いています。 もし、categoryが選択されない(関連するcategoryが存在しなかった)状態で保存を実行された場合、categoryにvalidatesが効かないようにし保存したいです。 if構文で書くのではなく、posts_controller.rbのcreate部分で別モデルのcategoryのvalidatesを制御する方法はあるのでしょうか? 現在、"Categoryが選択させていません"というvalidates文が自動で表示されている状態です。
回答: 確かrails5で開発してましたよね Rails5からbelongs_toに勝手にnilチェックが入るようです。 post.rb ``` belongs_to :category, optional: true ``` 上記のようにoptional: trueでそれを無効にできます。 参考