自作サービス着手

自作サービスに着手しました。

自作サービス

今週からRails7を使って自作サービスに取り掛かっていました。
今週は以下の作業をしました。

  • formatter系の導入
  • Rspecの導入
  • rails new
  • Deviseの導入
  • トップページの作成
  • slimの導入
  • GitHub ActionsでPRとマージ時にLinterが走るようにした 正直まだ導入の段階なので「詰んだ〜」みたいな状況には陥っていませんが、いくつか「うっ」という場面はありました。

# app/views/layouts/application.html.slim
    = csrf_meta_tags
    = csp_meta_tag
    = stylesheet_link_tag 'tailwind', 'inter-font', 'data-turbo-track': 'reload'



こんな感じで3つのCSSファイルをHTMLファイルにリンクし、読み込んでページに適用するという場面がありました。ここで自分はrails sを行いローカルでサーバーを立ち上げアプリを開いたところこんなエラーが発生しました。

The asset "tailwind.css" is not present in the asset pipeline.

rails7ではrails sではJSやCSSがビルドされないということをすっかり忘れていました。ここでのtailwindtailwind.cssを探しに行っています。このtailwind.cssapp/assets/stylesheets/application.tailwind.cssをもとにビルドされたファイル(app/assets/builds/tailwind.css)なので当然ビルドしていないと生成されません。なので今回はここでbin/devを実行するのが正でした。


そんなbin/devの中身は

# bin/dev

if ! gem list foreman -i --silent; then
  echo "Installing foreman..."
  gem install foreman
fi

exec foreman start -f Procfile.dev "$@"
# Procfile.dev

web: bin/rails server -p 3000
css: bin/rails tailwindcss:watch

こんな感じでTailwindのウォッチプロセスとdevelopmentモードのRailsサーバーを両方起動しているみたいですね。 変更内容が自動で反映されるのはこのウォッチプロセスというのがやってくれているみたい。ふむふむ。 ん?これってJSもビルドされているんですかね?CSSだけ感がある。この点気になるというか知らないとヤバそう。

Deviseの導入 by OdenTakashi · Pull Request #41 · OdenTakashi/SmartLottery



これからも引き続き頑張ります。Rspecが全くと言っていいほどわからないのでそこを勉強したいです。あとテストのCIも走らせたい。

参考