質問: twitterのようなwebアプリをruby on railsでつくっています。 リプライ(返信)機能を作るときに、tweetモデルにtweetカラムを作り、references型にしてtweet.rbに ``` has_many :tweet belongs_to :tweet ``` として作りました。 こうすることでtweetカラムがnilなら普通のツイート、nilじゃないなら返信ツイートという仕組みがつくれる! と思ったのですが、、、、 いざ作ってみたら何故か ``` validates :tweet, presence: true ``` としているわけでもないのにtweetカラムがnilだとエラーが出て保存できません。 「同じモデルを関連付けたら絶対にそのカラムの値は存在していなければならない」というルールがあったりするのでしょうか? となると「replyモデル」を別で作るという方法しかないのでしょうか? ご教授お願いします。
回答: Rails 5では、特に何も書かなくても、belongs_toは自動で必須となります。 外したい場合、optional: trueのような指定が必要です。