Hama Blog

Hama Blog

主にtech関連の記録

Rails

Railsで複数カラムの組み合わせでuniquenessバリデーションを指定するときの指定順について

概要 記事執筆時の環境 結論 調査内容 uniqueness バリデーションの実行ログ確認 SQL 実行計画の確認 PostgreSQL MySQL 所感 概要 Rails の uniqueness 1 バリデーションは単一のカラムだけでなく、複数のカラムに対しても、scope オプションを使うことで va…

Railsのform_withヘルパーと素のformタグのネスト(というかHTMLのformタグ自体のネスト)に注意

概要 記事執筆時の環境 結論 form_with ヘルパーが先の場合 テンプレートファイル 出力結果 素の form タグが先の場合 テンプレートファイル 出力結果 そもそも素の form タグ自体をネストさせるとどうなるのか テンプレートファイル 出力結果 概要 先日、会…

RailsアプリケーションをDokkuにデプロイする

概要 記事執筆時の環境 手順 VPS の契約 Dokku のインストール Rails アプリケーションのデプロイ +α SSL 化 Redis の設定 Cron の設定 Chrome, ChromeDriver のインストール GitHub Actions で自動デプロイ 所感 概要 個人開発しているサービスを Heroku で…

Railsでrenderの引数に渡したtemplateのパスの先頭に `/` があってもいける理由を調べてみた

概要 Rails の controller で別のパスにある template を呼び出したいことがたまにあり、その際は render template: "products/show" のような指定をするのだが、render template: "/products/show" のように先頭に / があってもエラーにならずにレンダリン…

DockerのRails開発環境でweb-consoleを表示する

概要 新しく Rails アプリケーションを Docker 環境で開発していたときに、web-console が表示されなくて困ったのでどうすれば表示されるか調べた。 記事執筆時の環境 Ruby on Rails: 7.0.4 Docker Desktop: 4.15.0 Docker Compose: 3.9 結論 config/environ…

Railsのform_withのオプションでmethodを指定しない場合にHTTPメソッドがどのように決められるのか調べてみた

概要 Rails の form_with ヘルパーでは、method オプション(任意オプション)を指定すると form_with によって生成される html の form タグに対して HTTP メソッドを任意に決めることができる。 未指定の場合はデフォルトで POST になるのかと思っていた(こ…

gem 'rails' のコードを Docker 環境で動かしながらコードリーディングする

概要 Rails で開発をしていて、たまに Rails 本体 (gem 'rails') のコードリーディングをしたいときがあるが、ただ読んでいるだけだと難しくて理解できないことが多い。 なので、Rails のコードをローカルにクローンし、開発中の Rails アプリからクローンし…