最近勉強を初めて自分でWebアプリケーションを作ろうと手をつけ始めました。
初学者のため、基礎が分かっておらず、ネットで探しても中々思うような記事が見つからず、ご教示いただけると嬉しいです。
◾️知りたいこと
railsのRoutes.rbファイルにおいて、ネストをさせる場合の基本的な考え方。
◾️事例
なんちゃってブログ(Webアプリケーション)を作ろうと思ったとします。
想定されるモデルは以下の通り。
【モデル】
①Userモデル(ユーザ)
②Blogモデル(ユーザのマイページ)
③Postモデル(投稿)
④Commentモデル(投稿に対するコメント)
それぞれ以下のようなアソシエーション。
【アソシエーション】
①(has_one) -②(belongs_to)
①(has_many)-③(belongs_to)
①(has_many)-④(belongs_to)
②(has_many)-③(belongs_to)
③(has_many)-④(belongs_to)
何となく短絡的に、こんなルーティングネストを書きたくなります。
routes.rb(例)
1 2 resources :users do 3 resources :blogs do 4 resources :posts do 5 resources :comment 6 end 7 end 8 end 9
commentのshowをしようと思ったら、パスは・・・ user/1/blog/1/post/10/comment/1・・・・??
ただ、パスを考えるとネストする度にどんどん深くなっていき直感的とは言い難いです。
実際に私が読んだ記事などでもネストは1、2つまでと書かれていることが多いです。
ユーザの配下に直接postsも配置させる?
けど、commentsも入れると結局3階層????ムムム??
form_forとか一体どこに飛んでいくだ???と混乱してしまいました。
◾️教えて欲しいこと
モデルのアソシエーション自体は必要だと思うため、問題ないと思っています。
ただ、これらを表す時のRoutes.rbファイルのネストのさせかたの基本が分からず、
通常どうやって浅くしているものか、参考となるページなどがあれば、ご教示いただきたいなと考えております。
初学者で基本中の基本すぎて大変恐縮ではありますが、何かアドバイスをいただければ嬉しいです。
拙い文章ばかりで申し訳ありませんが、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/24 04:31
2019/07/24 04:34 編集
2019/07/24 05:49
2019/07/24 06:03 編集
2019/07/25 04:24