Ruby on Rails開発のインターン (Day 36 最終日)

こんにちは、皆さん!

ついにインターン最後の日がやってきた!時間がたつのって本当に早い。インターン初日がまるで昨日のことのように感じられる。振り返ってみると、弁当たくさん作ったな(笑)
まあ、結果的にプログラミングに関して様々な知識を身につけられた気がする。すごくためになるいい経験だった。
最後の日に関してだが、おそらく新しくこれとしたことを始めることはないだろうが、ここまで僕が書いてきたコードの整理などをしてちゃんと他の人に引き継いでもらえるようにすることが主となるかな。最後の日も楽しんでいこう!


  • トピック:
  1. ネステッドルートを使い、Railsにおけるルートを効率よく定義する


  • 疑問:


  • 問題:


  • 学習した内容:
  1. Railsでルートを効率よく定義する方法


  • 今後やってみたいこと:


  • リソース:
  1. Rails のルーティング | Rails ガイド


ネステッドルートを使い、Railsにおけるルートを効率よく定義する

なんとここまで来て、やっと長いURLをネステッドルートで定義した方が効率がよく、コードとしてもきれいに見えることを知った。
今回はRailsガイドでその基礎を学んだ。(Rails のルーティング | Rails ガイド

この機能は難しくないし、僕も結構好き。もう本当にコードがきれいになる。
例えば、ネステッド状態のコントローラー、post/:id/image/:id(簡単に言うと、たくさんの写真を持ったたくさんの投稿を持つウェブサイトであり、このように指定することでその中の一つの投稿の一つの写真を出してくれる)。このURLを書くときにshowアクションのためだけにこう下記のように書きたくなるかもしれない。

get 'post/:id/image/:id', to: 'images#show'

しかし、これをさらにほかのアクションに対してもやらなくていけなく、それはまた大変な量のコードなのであり、間違いも発生しやすい。
だが、下記のようにネステッドの機能を使うことでこれがすごく簡単になるのだ。

resources :posts do
  resources :images
end

これだけで基礎的なRESTfulのアクションすべてを作り出したことになる。

もちろんいくつかのアクションに制限をかけたいときも簡単。例えば、投稿のeditアクションだけをなくしたいのなら

resources :posts, except: [:edit] do
  resources :images
end

ネステッドルートの更にいいところはcollectionフレームが使えることだ。これがあるだけでRESTfulに該当しない基本的でないアクションも簡単に定義することができるのだ。例えば、helloアクションをpost controllerに追加したいとする。そしたら、posts/helloでそのURLを構築したいのなら、普通、下記のようにすればできる。

get 'posts/hello', to: 'posts#hello'

しかし、collectionがあればこのように書き換えられる。

resources :posts do
  collection do
    get 'hello'
  end
end

これはより簡単だし、何より見やすい。あとでここに何か追加したいときはそのままこの枠の中に足すだけで前半部分のposts/をもう入れなくて済む。また、posts/部分が変わる場合も一か所だけ変えればすべてが一緒に変わるという。

まとめ

というわけで、僕の短期インターンに幕を閉じるときがやってきた。僕はとにかくこの自由でフレンドリーな環境が大好きだ。ここでは本当にたくさんのことを学ぶことができた。Railsに限らず、どうやってやることリストを管理し、効率よく仕事を進めていくかなど一般的で共通なスキルも学べた。大人として成長できた印象を受ける。個人的に給料以外はすべて納得だった(笑) まあ、スキルアップして次はもっとたくさん払ってくれるところ探すしかないね(笑)
最後の一日ということで、新しいことを始めることもできなかったが、存在するバグをいくつかすぐに直すことができたのでいいとしよう。最後にこの小さなコミュニティーに貢献できてよかった。
最後にマネージャーと少しこれからの僕のプランについて話し合った。彼は僕が来学期を終えた後、どんなことをするのか結構興味津々であった。今のところ、僕の考えでは、Airbnb, Twitter, Google, Microsoftのような大きなIT会社で働いてみたいなとは思っている(僕なんかを採用してくれるのならの話だが(笑))。明るい自分の将来を願いつつ、2か月間本当にお世話になりました。


ご精読ありがとうございました。では、また次回まで✌





Day 35はこちら↓↓
programming-shop.hatenablog.com