LoginSignup
174
153

More than 3 years have passed since last update.

Railsのroutesでnamespaceとscopeの設定

Last updated at Posted at 2014-01-28

Railsのroutes.rbでnamespaceとscopeを設定できるんですが、こんな違いがあります。

namespace

TestConrollerのReadアクションにアクセスしたいわけなんだけど、
routes.rbに

namespace :v3 do
    get "/test/read",:to=>"test#read"
end

とか書くと

GET  /v3/test/read(.:format)    v3/test#read

こうなります。
v3フォルダの下のTestControllerにアクセスしにいきます。

scope

scopeだけを設定するといつものappフォルダの下にあるコントローラにアクセスしにいきます。

scope :v3 do
    get "/test/read",:to=>"test#read"
end

とか書くと

GET  /v3/test/read(.:format)    test#read

あえてフォルダの一個下ぽいURLを作りたいときなんかに使えそうですね。/adminとか/auth、またはAPIなんかに。

Rails5で検証

Rails5になったので検証してみました。

 12   namespace :artists do
 13     get 'similars/index'
 14     get 'similars/show'
 15     get 'tags/index'
 16     get 'tags/show'
 17   end

僕が現在書いているソースコードの抜粋ですが、これだと

/artists/simmilar/index

とかでアクセスできました。

Rails6で検証

Rails6になったので検証してみました。

 12   namespace :artists do
 13     get 'similars/index'
 14     get 'similars/show'
 15     get 'tags/index'
 16     get 'tags/show'
 17   end

こちらも

/artists/simmilar/index

とかでアクセスできました。

174
153
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
174
153