BNBのプログラミング勉強記録

ガチのプログラミング初心者が駆け上がっていくブログ

herokuを使いましょう、railsで作ったやつが動いてるのを公開したかったら。

結論

herokuを使うとgithubにpushしたやつが実際に動いて感動する

なんだこの記事

初心者が初心者向けに書いてます。Progateのrailsクリアして「うお〜作るぞ〜」ってなってる人向け。

herokuとは

railsで書いたコードをgithubにpushしても、localhost:3000で動いてるものをそのままお届けできませんがherokuならできます。ただ月額5ドルかかります。「無料に近い所もあるけどherokuが圧倒的に使いやすい、というツイートを紹介している記事」を見たので、俺は払います。ちなみにその記事は下記です。
https://blog.jnito.com/entry/2022/10/04/104100

使い方

下記参照。これで突破できた。最初からこの記事を発見できていればどれだけ楽だっただろうか。
https://qiita.com/kazukimatsumoto/items/a0daa7281a3948701c39

俺用に要約しとこ。

  1. rails newとrails g scaffoldでとりあえずテキトーに作り、ルーティングでrootをindexに設定しとく
  2. gemfile:sqlite3をコメントアウト、下の方のdev,testのgroupにgem 'sqlite3'を追加(図1のように)、最下部に図2を追加(下記参照)
  3. ターミナル:bundle install --without production
  4. database.yml:図3参照
  5. production.rb:config.assets.compile をtrueにする
  6. ターミナル:bundle lock --add-platform x86_64-linux ※なんでこれがいるかは、https://universato.hatenablog.com/entry/2021/07/14/030424 を参照
  7. githubリポジトリ作っとく
  8. ターミナル:gitの一連のコマンド(add,commit,push)
  9. herokuのサイトへ行き新規のアプリを作る
  10. サイト上でgithubリポジトリと連携させる
  11. ターミナル:heroku git:remote -a herokuで設定したアプリ名(ミスったらgit remote rm heroku)
  12. ターミナル:git push heroku main
  13. ターミナル:heroku run rails db:migrate

図1

group :development, :test do
  gem 'sqlite3' 
end

図2

group :production do
  gem 'pg'
end

図3

production:
#半角スペース2個分の空白を開ける
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5

便利コマンド

ターミナルでheroku logsするとログを見られる。ただ、herokuのサイト上でも閲覧可能。vscode+chrome+サブディスプレイという環境なら、ターミナルアプリを立ち上げてアプリのフォルダに行ってheroku logsをメインディスプレイ、chromeをサブディスプレイにするのがいいと思うけどプロの皆さんはどうしてるんでしょうか。