by Sampo Kuokkanen
新しいRails 7アプリを作ろう!
時間管理のアプリほしい! なぜか既存のものが全部使えない、という設定にしましょう。 (TTD、テスト駆動開発について書きたいのが主な理由です)
Ruby on Railsでプロジェクトを始めよう! 使うのは最新のRails 7です。 (メイン直で使うので、Rails 7.1.0アルファですが)
$ gem install rails
コマンドを実行して、ローカルにRailsをインストールしているのが前提になります。 もちろんその前にもRubyをインストールする必要があります。
今回はJavaScriptなしでリアルタイムに動くアプリを作りたいので、Turboを導入することにします。 いわゆるHotWireになります。
覚えられないほどオプションがあるので、rails new --help
を実行してみましょう。
今回使いたいオプションを以下にまとめています。
rails newのオプション
Tailwind
まず、CSSはTailwindを使いたいです。 これでTailwindにスタイルを任せて、手動でCSSを書くことをほぼなくすことができます。
こちらのオプションは--css=tailwind
です。
Javascript
JSはデフォルトでimportmapになっていて、それで問題ないので、 指定しなくて大丈夫です。Webpack, Sprocketsから開放されます!
asset-pipeline
アセットパイプラインになると、またSprocketsの話になりますが、こちらは最近あまり開発もされず、今後どうなるのかは不明です。
スピード的に遅いということもよくあって、あまり使いたくないです。Propshaftという新しいオプションが出たので、それを試しましょう。
--asset-pipeline=propshaft
というオプションになります。
main
--main
というコマンドでRailsをバージョン指定ではなく、GitHubのメインブランチを使うようにできます。
Shopifyなど、イケてる会社がやっているやり方なので、やりましょう!
Gemが対応していない、ということもよくあるので、初心者はこのオプションなしが安全
–skip-jbuilder
jsonを返すことは今の所感がていないので不要です。
database
DBはPostgreSQLを使います。
オプションは--database=postgresql
です。
全部合わせて
以下のコマンドになります!
$ rails new worktimerr --database=postgresql --css=tailwind --asset-pipeline=propshaft --main --skip-jbuilder
これで開発に当たれますね! と思っていたら、RSpec, Rubocopの設定など、作成したあとにやらないといけないこともまだ残っています。
Rubyのバージョンが古かった!
無事作成したら、Rubyのバージョンが古いことに気づいて、
git -C /home/sampo/.rbenv/plugins/ruby-build pull
よいうコマンドでRbenvに最新のバージョンの情報を読み込まないと行けなかったです。
これでrbenv install 3.1.0
で最新のRubyをインストールして、
rbenv global 3.1.0
で最新のRubyをデフォルトにしています。
.ruby-versionには古いバージョンが記載されていますので、3.1.0に書き換えます。
Gemfileにもruby "古いバージョン"
と書いてあるので、上と合わせて、ruby "3.1.0"
に書き換えます。
再度bundle
実行して、今日の作業は終わりです!