怖話でネストしたリソースのクラス名がぶつかってしまうので、どうつけるかで悩んでいます。
ぶつかるページ
- story 1個づつに紐づくcomments(怖い話1のコメント一覧)
- なんらかのstoryに紐づくcomments(怖い話のコメント一覧)
story(怖い話)以外にもcomic(ホラー漫画)とかurban_legend(都市伝説)とかあり、それぞれにもcommentがつく。
# config/routes.rb
Rails.application.routes.draw do
namespace :stories do
resources :comments, only: :index
end
resources :stories, only: :index do
resources :comments, only: :index, controller: 'stories/comments'
end
end
% rake routes
Prefix Verb URI Pattern Controller#Action
stories_comments GET /stories/comments stories/comments#index
story_comments GET /stories/:post_id/comments stories/comments#index
posts GET /stories stories#index
URLの意味的にどちらも上記のようにしたいが、commentsコントローラーが被ってしまう。
これを避けてnamespace無しのcommentsコントローラーを使うと今度はcomicのcommentなどとかぶってしまう。
それを避けるにはAllCommentsとかCommentsByStoryなどといったダサい名前しか思いつかない。まいったなあ。