先日、rails5のアプリで、登録処理が出来ない事象に遭遇したため、備忘録を残しておく。
前提
- rails5
- belongs_toを使用している
- 親キーはnilを許可したい
構成としては以下のテーブルがある想定です。
- user has_many post
- post belongs_to user
事象
postしたユーザが存在しない場合(匿名)の状態で投稿したいが、ロールバックされている。
ちなみにrails4までは正常に動きます
解決方法
以下をしてあげればOK
belongs_to :user, optional: true
これでユーザがnilの場合でも許可される設定になります。
コメント