PerlerのRuby日記

Rubyとか

Railsのconfig/routes.rbの書き方を冗長で自明にした

何をしたか

Railsのconfig/routes.rbの書き方にいい加減嫌気がさしたので単純を羅列する方法に変えた。
自分一人ならレールに乗るのもいいけど、複数人でさわるならわかりやすさ重視の方がいいとおもう。

変更前
Rails.application.routes.draw do
  root to: 'root#index'

  resources :books, except: [:destroy] do
    scope module: :books do
      resources :authors, only: [:index, :show] do
        resource :emails
      end
    end
  end
end
変更後
Rails.application.routes.draw do
  root to: 'root#index'

  get   'books'     => 'books#index' , as: :books
  get   'books/:id' => 'books#show'  , as: :book
  post  'books'     => 'books#create'
  patch 'books/:id' => 'books#update'

  get 'books/:book_id/authors'     => 'books/authors#index', as: :book_authors
  get 'books/:book_id/authors/:id' => 'books/authors#show' , as: :book_author

  get    'books/:book_id/authors/:author_id/emails' => 'books/emails#show'   , as: :book_author_emails
  post   'books/:book_id/authors/:author_id/emails' => 'books/emails#create'
  patch  'books/:book_id/authors/:author_id/emails' => 'books/emails#update'
  delete 'books/:book_id/authors/:author_id/emails' => 'books/emails#destroy'
end

文字が多いとか縦に伸びるとかデメリットもないでもないけど、見ただけで分かるという点で、自分はこれでいいとおもった。