私は過去、Ruby on Rails (以下、Rails) 2.3 で EC サイトを作ったりしてました。PostgreSQL をメイン DB にしつつ、基幹 DB の Oracle Database Server (8i ~ 10g)につなげるという構成です。
Rails 3 へのアップグレード後に職を離れてしまったため、それ以来というのがスキルセットです。
3 以降、肥大化する Rails のキャッチアップは一切していなかったのですが、そこへ 2024年11月、Ruby on Rails 8 のリリースの情報、そして依存関係が減っており、SQLite だけのシンプルな構成で動くとのこと。
これならば WSL2 のローカル環境で試せそうという思いから、久々に rails new
してみようと思ったわけです。
試した環境:
> wsl.exe -v
WSL バージョン: 2.3.26.0
カーネル バージョン: 5.15.167.4-1
WSLg バージョン: 1.0.65
MSRDC バージョン: 1.2.5620
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.26100.2605
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS"
Rails のインストール
公式に簡潔にまとまっています。私が解説するまでもありませんが、以下の3ステップで終わります。
- 開発ツールマネジメントミドルウェア「mise (ミーズ)」をインストール
- この前に mise や Ruby をインストールするためのライブラリを準備する必要があるかもしれない
- mise を使って Ruby をインストール
gem install rails
Scaffold を試す
まず最初に断っておくと、公式の手順に沿うことで一通りのことは試せます。
https://guides.rubyonrails.org/getting_started.html
そこで Getting Started とは別に、Rails が注目されるようになったきっかけ※の「Scaffold (足場)」が使えるのかを試しました。
※要出典だ!
結論、動くんですね。
$ rails new blog
...
gsub config/environments/production.rb
create db/cable_schema.rb
force config/cable.yml
$ cd blog
$ rails generate scaffold post title:string body:text postdate:datetime is_published:boolean
...
create app/views/posts/show.json.jbuilder
create app/views/posts/_post.json.jbuilder
$ rails db:migrate
== 20250106123357 CreatePosts: migrating ======================================
-- create_table(:posts)
-> 0.0020s
== 20250106123357 CreatePosts: migrated (0.0021s) =============================
$ find . -name *.sqlite3
./storage/development.sqlite3
バッチリ、 db:migrate
まで走りました。
Rails 3 の時との違いは db:migrate
が rake
から rails
になったことや、SQLite DB ファイルが db/
から storage/
に変わったことでしょうか。
rails server
でサーバーを立ち上げて /posts
へアクセスし、入力をした後に rails console
で Model 操作もできました。
なんというか、懐かしい!
おわりに
Getting Startedを眺めていると、先の rake
コマンドから rails
への移行など、さすが洗練されているんだなという感想です。
一方で、今回、ほぼ昔の知識のままでいけたということは、考え方や基本構成が 2.3 や 3 の頃に完成されていたという凄まじさも感じています(小並感)。
Getting Started はテストやデプロイまで揃っており、全部やろうとすると2~3時間はかかりそうです。昔は方々に情報を探していましたが、まずは「公式ドキュメントから」が一番早く学べそうです。
たのしかった。
[EoT]