はじめに
業務で Ruby on Rails に触れなければならなかったのですが、Ruby on Rails の知識が Progate の Rails 講座(確かバージョンは Rails5)で知識が止まっており、加えて多くのことを忘れてしまっていたので以下の書籍で再度 Rails を学ぶことにしました。
一通りやってみた感想としては、かなり手ごたえのあるチュートリアルで、学ぶことがたくさんありました。
そのため、この記事では整理もかねて、学びになった点などを記載していきたいと思います。
学ぶときに工夫した点
本書を購入して大まかな流れを見たときに、いくつか「自分なりにアレンジしたい点」や「もっと挑戦したい点」があるように感じ、本書の内容+αで様々なことを工夫しました。
ここではいくつかの例をピックアップして記載したいと思います。
1. テストフレームワークをMiniTestからrspecにした
私の担当する業務ではテストフレームワークに rspec を使用していたため、チュートリアルでも rspec でテストを書き直しました。
これがかなり手ごたえのある作業で、特にモックデータの作成を Fixture から FactoryBot に置き換える作業と、 Integration Test を rspec で書く作業が苦戦しました。
AIの力を借りながらこれらの作業は行ったのですが、実在しない構文を使用したアウトプットが出てきたり、MiniTestとは全く違うテストを実施していたこともあり、それらの修正にもまた一苦労でした。
そのため、下記のような Rspec の記事も参考にしつつ、最終的には地道にテストを書いていきました。
2. devcontainer 環境を一から構築した
チュートリアルでは GitHub の Codespace を使って1から開発環境を構築していたのですが、個人的には Dockerfile および docker-compose.yml を理解して書いてカスタマイズするのが好きなので、あえて Codespace を使わずに1から構築してみました。
bundle install を実行するタイミングによって gem のインストールが失敗する問題や、拡張機能のエラーが発生したりする問題なども起こったのですが、試行錯誤しながら解決することができました。
特に onCreateCommand や postCreateCommand などの lifecycle-script は正直なところ「わかった気」になっていた部分はあったのでこの機会に理解度を高められてよかったです。
3. DBサービスを変更した
チュートリアルでは DB は Render を使用していましたが、Render自体は以前別の個人開発アプリで触ったことがあったので、Neonという別のサービスを使ってみることにしました。
その理由としては、Renderの DB のサービスは無料枠だと30日後に使えなくなってしまうというかなり痛い仕様があったためです。また、以下のように調べてみたところ同じ構成でWebアプリを作っている方も存在し、セットアップも煩雑ではなさそうだと感じたため、Neonを採用してみました。
実際、UIなどの使用感も悪くなく、現状は満足しています!やってよかった!
おわりに
今回は Rails を学び直す目的で Rails チュートリアルをやってみましたが、かなり学びの多いチュートリアルになりました。特にテストに関しては、 Progate でも触っていないところだったので苦戦しましたが多くのことを学ぶことできました! ![]()
また、この記事に書ききれなかった話もたくさんあります。例えば、 rails db:reset が失敗してこちらの記事を参考に解決したこともあり、多くのTipsを得ることができました。
しかし、まだまだ以下のことをチャレンジしたいと思っています。
- Rails をバージョン8にアップデートする
- cancancan を使ってより複雑な権限管理をしてみる
- Railsで外部のAPIを叩いてみる
- i18nで多言語化対応してみる
- rubocop の設定をカスタマイズしてみる
そのため、これらは今後の課題としてこれからも学習を続けていきたいと思います ![]()