2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsチュートリアルまとめ 第1章

Last updated at Posted at 2021-04-17

Railsチュートリアル

以前少しチュートリアルをやったことはあるが、こういったqiitaのように他人に伝わりやすい形でアウトプットできていたかと言われればできていなかったかもしれない。
今回はチュートリアルをもう一度やり直してなるべく分かりやすく、かつシンプルにまとめていこうと思う。

目次

1.railsアプリの作成
[2.Bundler, Gemfile](#2-Bundler, Gemfile)
3.MVCアーキテクチャの説明
4.簡単なルーティングとアクション
5.gitの使い方
6.herokuにデプロイ

#1. railsアプリの作成
railsでアプリケーションを作成する際はまず作成したいディレクトリに移動する。
そしてrails _バージョン_ new アプリ名コマンド実行でアプリケーションを作成できる。

#2. Bundler, Gemfile
Bunderとはgemのバージョンや依存関係を管理するもの。gemはRubyのライブラリ。
bundle installコマンドでgemのインストールを行う。

gemのバージョンを指定する主な方法は2種類ある。
①gem 'capybara', '>=2.15'
->最新バージョンのgemがインストールされる。(2.15以上のバージョンならインストールされる)
②gem 'rails', '~>6.0.3'
->gemのバージョンが6.0.3以上で6.1よりも小さい場合にインストールされる。(マイナーバージョンの部分に相当するアップデート済のgemをインストール)

bundle installとbundle updateの違い

  • bundle install
    bundle installはgemfile.lockを元にgemのインストールを行うが、gemfile.lockに記述されていない、gemfileに記述されているgemがある場合はそのgemをインストール。その後gemfile.lockを更新する。

*bundle update
bundle updateはgemfileを元にgemのインストールを行い、gemfile.lockを更新する。

bundle updateは本番環境ではgemのバージョンのズレが起こり、アプリがクラッシュしてしまう可能性があるので基本的にはbundle installを使い、ローカルでのみbundle updateを使うべき。

#3. MVCアーキテクチャの説明

  • model ... データベースとのやりとり
  • view ... 表示処理をする
  • controller ... リクエストを処理する
    Railsアプリの通信の流れはブラウザからリクエストを送り、コントローラに渡されて必要に応じてビューを生成しHTMLをブラウザに送り返すといったようになっている。また、データベースからデータを引き出す必要がある際はコントローラはモデルを呼び出し、モデルはデータベースとやりとりをする。

#4. 簡単なルーティングとアクション
config/routes.rbに
root 'コントローラ名#アクション名'
を書くと一番最初のページを指定できる。(ルートに接続する時にどのコントローラのどのアクションに繋がるかを設定できる)

app/controllers/application_controller.rbには
def アクション名
処理内容
end
というように書く。

#5. gitの使い方
gitをインストールしたばかりであれば、初めにgit config --global user.name "名前"git config --global user.email メールアドレスで名前とメールアドレスを設定する。
gitを使いたい場合はgithubでリポジトリを作成して
git initコマンドを実行して.gitを作成。
git add -A (ファイルをステージング)
git commit -m "Initialize repository"
git remote add リポジトリのURL
git push origin master(-uオプションをつけるとgit pushのみでmasterにpushできるようになる)

よく使うコマンド

  • git branch ブランチ名 ... ブランチを作成(-dオプションをつけるとマージされている指定したブランチを削除、-Dオプションならマージされてなくても削除)
  • git checkout ブランチ名 ... ブランチを切り替える(-bオプションをつければ新規にブランチを作成してそのブランチに移動)
  • git status ... ステージングの状態を表示する
  • git log ... コミットメッセージの履歴を参照する

ちなみにgit commitメッセージは現在形命令形で書くようにすること。

#6. herokuにデプロイ
heroku createでherokuアプリを作成。同時にgit remoteにもherokuが追加される。(git remote -vでリモートを一覧表示)
git push heroku masterでデプロイ。

herokuはデフォルトがpostgresqlなのでrailsのデフォルトと違うことに注意。(railsはsqlite3)
gemfileに開発環境、テスト環境はsqlite3で本番環境はpgを使うように書く。

herokuでデプロイ時にエラー

heroku openでエラーになってしまった。
エラーをみてみるとapp crachedになっているが原因わからず。
こちらを参考にしてheroku run consoleを実行してみると、どうやらherokuでsqliteを使おうとしてしまっていることが分かった。
そこでconfig/database.ymlのproductionの設定を
adapter: postgresql
database: db/production.pg
に変更。

これでコンソールが動いたので再びheroku openでデプロイ成功。

参考文献

以下の記事を参考にさせていただきました。
bundle installとbundle updateの違いについて
Railsチュートリアル1章でHerokuにデプロイできない時の対処方法
Qiitaの投稿記事内でページ内リンクや目次リンクを行う方法

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?