今回はrailsのルーテイングの時に役に立つnestについてまとめて見ました。
ネストを使うとルーテイングの見やすさが一気に上がるので、ぜひこの記事を参考にして見てください。
早速ですが、ネストを理解する前に、掲示板とコメントの関係を思い出してください。
...
掲示板とコメントの関係ですが、これは、必ずと言っていいほど、掲示板の中にコメントが書かれていますよね。
このQiitaも全く同じ機能で、掲示板を僕が一つ記事を書き、そこに読者様からのコメントがありますよね。
こういう風に一対多(掲示板が1、コメントが多)の関係になっているものはネストでルーテイングを表現してあげましょう。
そちらの方が視覚的にも見やすいです。
具体的には以下をご覧ください。
Boardモデル
class Board < ApplicationRecord
has_many :comments
end
Commentモデル
class Comment < ApplicationRecord
belongs_to :board
end
ネストの表現方法は下のようになります。
親がboards 子がcommentsのように書きましょう。
親boardsの中に子供commentsがいる、そんなイメージです。
resources :boards do
resources :comments
end
rails routesでルーテイングを確認すると
board_comments POST /boards/:board_id/comments(.:format)
comments#create
このような形でboardの中にcommentが存在していますね。
だいぶコードが見やすくなりました。