初めてのルーティング

榊間です。

なぜ週一回投稿すると言ってしまったのかじわじわ後悔しています(2回目にしてネタ切れ)

とりあえず今回は、1回目に悩みすぎてact-as-taggable-onという謎の選択をしてしまったので、rails初心者っぽくルーティングについて書いていこうと思います。


ルーティング

インターンするまでに少しだけrailsをやっていたんですが、そのとき知っていたルーティングの書き方はこれだけ

resources :articles
get '/articles/:id' => 'articles#show'

んで、インターンを初めてサービスのコードを見せてもらったときに、ルーティング予想以上に訳がわからなくて驚きました。(namespace? collection? なぜdoとendが...)

それで調べてみたら、いろいろな書き方があったのでまとめて書こうかと思います。


ネストの概念

resources :users do
resources :articles
end

とかすると、resources :usersに加えて、usersのidごとにresources :articlesが展開されるイメージ。例えばarticles#index
prefix...users_articles_path
フルパス.../users/:users_id/articlesになります。


namespace

これはグループ化に使います。

namespace :user do
resources :articles
end

こうすることで、
prefix...user_articles_path
フルパス.../user/articles
controllerのaction...user/articles#indexになります。(indexの場合)


collection

基本の7つのルーティング(index,show,new,create,edit,update,destroy)以外のものを追加したいときに使います

resources :users do
collection do
get :article
end
end

prefix...article_users_path
フルパス.../users/article
controllerのaction...users#articleになります。prefixはusersの方が後になります。


member

collectionと基本は同じですが、

resources :users do
member do
get :article
end
end

prefix...article_user_path
フルパス.../users/:id/articleになります。collectionに対して、userのidごとのarticleを動かせるようになります。


まだまだたくさんオプションとかもありますが、よく見るやつを書きました!
参考にしたのはルーティングを極める (後編) | TechRacho

今度はもっと実のある記事を書こうと思います...m(__)m