怖話でネストしたリソースのクラス名がぶつかってしまうので、どうつけるかで悩んでいます。

ぶつかるページ

  1. story 1個づつに紐づくcomments(怖い話1のコメント一覧)
  2. なんらかの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などといったダサい名前しか思いつかない。まいったなあ。

Comments


Option