← All posts

by Sampo Kuokkanen

User avatar
Sampo Kuokkanen
Rails
2022-01-07
新しいRails 7アプリを作ろう!オススメGem

新しい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実行して、今日の作業は終わりです!

Ruby, Elixirの開発はご相談ください!

合同会社Sampo Development

sampo@sampo.ltd