はじめに
SNSサイトを作成中、投稿にキャンプサイト(未入力or1件まで)を紐付けようと思い、以下の通りにしたところ、
キャンプサイトが未入力時に、バリデーションで弾かれ、投稿ができなかっため、対処法を残しておきます。
前提
Postモデル
- user_id
- image_id
- camp_site_id(FK)
- body
CampSiteモデル
- site_name
やりたいこと
キャンプサイトの登録は任意で、Postを投稿したい
#やったこと
camp_site.rb
has_many :posts
post.rb
belongs_to :camp_site, optional: true
"optional: true" がなかったために投稿時のcamp_site_idのnilが許可されず
エラーが表示されていました。
belongs_toが成り立たなくなるため、通常では、nilは許可されないそうです。
そのため、"optional: true"を記載してあげて、nilを許可する必要があります。
終わりに
深く理解していなかったために、初歩的な段階でつまづいてしまいました。
1から復習すること、些細なことでも調べ直すことが大切だと痛感しました。