質問: Railsのhas_many, belongs_toを両方のモデルで指定する必要性はなんなのでしょうか。 Railsチュートリアル() の例を見ると片方にはhas_manyを、もう片方にはbelong_toを指定しています。 ですが、私の経験上has_manyだけ指定してbelong_toは書かなくても、joinする分には困らないなとの認識です。 1. 両方のモデルで指定する必要があるか? 2. 必要が無い場合は、両方のモデルで指定するメリットは何か? この2点についてアドバイスいただけると助かります。
回答: 1、あくまでリレーションなので、モデル間で参照がない場合はhas_manyやbelongs_toは必要ないです。 例えば CategoryがBookを複数持っている時 ``` class Category < ApplicationRecord has_many :books end ``` は`category.books`でそのカテゴリーに含まれている本を全て取得できます。 一方でcontrollerなどのコード中に`book.category`、この本がどのカテゴリーに含まれているかという参照がないなら ``` class Book < ApplicationRecord belongs_to :category end ``` の記述は無くてもよいです。 2、に関してですが、コードを見た時にリレーションがわかりやすいくらいだと思います。 個人的な感想ですが、あった方がモデル間の関係がわかりやすくなるので、 特に理由がなければ、書いてあった方が良いと思います。