Ruby on railsで任意のパス以下のルーティングをまとめて登録する(namespace)

Ruby on railsで任意のパス以下のルーティングをまとめて登録するには、namespace を使います。

以下は/media/videos と/media/musics といったように、/media 以下にパスを追加する例です。

Rails.application.routes.draw do
  namespace :media do
    resources :videos, :musics
  end
end

videos とmusics のコントローラとビューを以下のように配置します。

/app
|- /controllers
|  |- /media
|     |- musics_controller.rb
|     |- videos_controller.rb
|
(ビューはこんな感じ)
|- /views
   |- /media
      |- /musics
      | |- index.html.erb
      |- /videos
        |- index.html.erb

コントローラの中身は以下のような感じ。

class Media::VideosController < ApplicationController
  def index
  end
 …
end

 

パスをグルーピングできてメンテナンスしやすくなりますね。

参考:Rails のルーティング | Rails ガイド

タイトルとURLをコピーしました