#はじめに
railsチュートリアルで1章と2章を読み、AWScloud9は使わず、ローカルでherokuへデプロイを試みました。
チュートリアルどおりにやっても上手くいかず...
また、流れをまとめたかったので、以下に備忘録として記載します。
3章以降については未読ですので、今後エラーがあるかもしれません。
その場合は分かり次第こちらを更新しようと思います。
初学者が書いてますので、ご指摘ありましたらコメントお待ちしております。
参照:Railsチュートリアル
2020.11.10〜 3章以降のGemfile更新しました!
→RailsチュートリアルGemfile編集(3章〜)
#ローカル環境
・MacOS
・Ruby 2.6.6
・Rails 6.0.3.4
・ターミナルとVScode使用
#rails new
ターミナルを開き、railsのフォルダを作りたい場所まで行きます。
今回はデスクトップに作成してみました。
% cd Desktop
新規のrailsフォルダを作成します。
newの後にフォルダ名を入れることで、その名前で作られます。
今回はpractice_appという名前にします。
% rails new practice_app
webpacker successfully installed 🎉 🍰
上記が表示されれば無事作成されていると思います。
ちなみにこの段階で、ディレクトリを移動してサーバー立ち上げをすると成功します。
もし成功していない場合は、事前の環境構築が終わっていない可能性がありますので、エラー文をご確認ください。
% cd practice_app
% rails s
次に、サーバーに
hello, world!
という文字を表示させるよう、VScodeでファイルを編集します。
これをやっておかないで空の状態だとherokuでエラーが出ました...
※チュートリアルの3章でも、デフォルトのページのままherokuを使わない方がいいということを書いていますね。
VScodeで下記二つのファイルを編集してください。
まずapp/controllers/application_controller.rbを開きます。
def ~ endまでを追記します。
class ApplicationController < ActionController::Base
def hello
render html: "hello, world!"
end
end
次にconfig/routes.rbを開きます。
root~の一文を追記してください。
Rails.application.routes.draw do
root 'application#hello'
end
ちなみにこの段階で、
% rails s
をすると、白い背景に「hello, world!」という文字列が表示されます。
#Gemfileの編集
herokuへデプロイするなら避けては通れないGemfileの編集...
チュートリアル通りにコピペしても私の場合は上手くいきませんでした。
そこで、デフォルトの状態から最低限だけ編集することにしました。
gem 'sqlite3', '~> 1.4'
上記を切り取り、
group :development, :test do
の下に貼り付けます。
group :production do
gem 'pg', '1.1.4'
end
次に、上記をコピーして、group :test do ~ end
の下に貼り付けます。
そして絶対に忘れてはいけないのが
% bundle install --without production
ちなみにGemfileをチュートリアルに合わせると上記でエラーになります...
bundle updateをすれば大丈夫とのことですが、私はそれすらもエラーになりました。
調べるとzshファイルで権限をいじった方がいい?とのこと。
よく分からなくて挫折しました。
参照:gem installでpermissionエラーになった時の対応方法
--without productionオプションは一度すると記憶されるため、二回目以降は省略しても大丈夫だそうです。
Railsチュートリアル3章
#GitとGitHub
※GitもGitHubもアカウントが作成されている前提で進みます。
% git init
% git add -A
% git commit -m "任意のコメント"
上記コマンドまで完了したら、GitHubを開き、New repositoryを選択し、Create repositoryボタンを押します。
そうすると読み込んだページに、githubへpushするためのコマンドが出てきます。
それをコピーしてターミナルで実行します。
% git remote add origin https://github.com/<あなたのGitHubアカウント名>/practice_app.git
% git branch -M main
% git push -u origin main
チュートリアルだとmasterとなっていますが、上記はmainになっています。
自分なんかやらかしたか...と不安になりましたが、こんな理由があったようです。
GitHub、これから作成するリポジトリのデフォルトブランチ名が「main」に。「master」から「main」へ変更
#herokuへデプロイ
ここまで上手くいけば、あとはデプロイするだけ!
下記コマンドを実行します。
% heroku create
% git push heroku main
チュートリアルだとmainではなくmasterですね。
私の場合はmainでないとできませんでした。
上記コマンドを実行すると、出力結果に所々、黄色で「warning」と出てきますが、
赤字の「error」でなければ無視して大丈夫なのでしょうか?
これについても次回までの課題です。
そして最後に!!
% heroku open
を実行して、「hello, world!」の文字列が出てくれば終わりです!
もし上手く行かないときは
% heroku logs
をしてエラー文を確認しましょう。
#最後に
私はここまでたどり着くまで10時間以上かかりました。
今も苦しんでいる初学者の方が一人でも救われますと幸いです。