初めてのルーティング
榊間です。
なぜ週一回投稿すると言ってしまったのかじわじわ後悔しています(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