#はじめに
自分がRailsを勉強するときに、簡単にまとめたやつがあったらいいのにと思ったので学習しながら編集しました。
自分の勉強用です。
AWSでのCloud9の設定はとばします。
##1.2.2 Railsをインストールする
$ echo "gem: --no-document" >> ~/.gemrc
Rubyドキュメントをインストールしないよう.gemrcファイルを設定する
.gemrcって言うのはgemの設定ファイル
設定は「gemのインストールやアップデートの際にドキュメントファイル生成しない」的な感じ
ドキュメントとは、説明書のこと。
Gemを使うに当たって絶対必要ではなく、サイズも大きくなるし時間もかかるからスルーしますというやつ。
$ gem install rails -v 6.0.3
$ rails -v
$ ruby -v
Railsのインストールとバージョン確認をする。
$ source <(curl -sL https://cdn.learnenough.com/yarn_install)
JavaScriptの依存関係を管理するYarnというプログラムをインストールする。
##1.3 最初のアプリケーション
$ cd ~/environment
$ rails _6.0.3_ new hello_app
rais newを実行する(バージョン番号を指定)
並び順は rails バージョン指定 new アプリ名
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'rails', '6.0.3'
gem 'puma', '4.3.4'
gem 'sass-rails', '5.1.0'
gem 'webpacker', '4.0.7'
gem 'turbolinks', '5.2.0'
gem 'jbuilder', '2.9.1'
gem 'bootsnap', '1.4.5', require: false
group :development, :test do
gem 'sqlite3', '1.4.1'
gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '4.0.1'
gem 'listen', '3.1.5'
gem 'spring', '2.1.0'
gem 'spring-watcher-listen', '2.0.1'
end
group :test do
gem 'capybara', '3.28.0'
gem 'selenium-webdriver', '3.142.4'
gem 'webdrivers', '4.1.2'
end
# Windows ではタイムゾーン情報用の tzinfo-data gem を含める必要があります
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
Gemfileを書き換える。
$ cd hello_app/
$ bundle install
gemをインストールする。
ここでエラーが出てしまったのでbundle uddateする。
$ bundle uddate
再度bundle installする。
$ bundle install
1.3.2 rails server
Rails.application.configure do
.
.
.
# Cloud9 への接続を許可する
config.hosts.clear
end
Webサーバーへの接続を許可が必要らしいので、config/environments/development.rbを開いて2行足す。
$ cd ~/environment/hello_app/
$ rails server
実行したままにしたいので、もう1つターミナルを開いてRailsサーバーを実行する。
ブラウザを開いて、ヾ(´∀`)ノYay! You’re on Rails!ヾ(´∀`)ノわーい みたいのが出たらOK。
###1.3.4 Hello, world!
ここからMVCモデルに入る。
#app/controllers/の中にある〇〇controller.rbと言うファイルは?
$ ls app/controllers/*_controller.rb
#結果
app/controllers/application_controller.rb
ファイルを調べる。まずは第一章ではまずコントローラから。
class ApplicationController < ActionController::Base
#helloアクション
def hello
render html: "hello, world!" #HTMLで表示したい:"表示したい内容"
end
end
3行追加する。これでこの後のルーティングを設定すると"hello, world!"が表示できるようになるらしい
Rails.application.routes.draw do
root 'application#hello'
end
#root(一番上、/)では'application_controller'のhelloアクション'を実行するという意味。
'application_controller'のhelloアクション'というのは1個前に設定したやつ。
ここでエラーが出てしまった。エラーの内容は読み込み中がすごい長いというもの。
Rails sを再起動しようと思ってRails sを実行しているターミナルを見ると、終了できなくなってしまっていた。
$ ps aux | grep [p]uma
$ kill -9 <出てきたプロセス番号>
これでもう一度Rails sを再起動できた。
ブラウザに、Hello,world!と表示されればOK。
##1.4 Gitによるバージョン管理
$ git config user.name #登録されていればここに表示される
$ git config user.email #登録されていればここに表示される
#登録されていなければ下記コマンドで登録
$ git config --global user.name "Your Name"
$ git config --global user.email your.email@example.com
git configで設定。
$ sudo ln -sf `which nano` /usr/bin
$ git config --global alias.co checkout
Gitで使うデフォルトのエディタを設定。
git coをcheckoutのエイリアスに設定。これから'git checkout' を'git co'と省略できる。
$ cd hello_app #アプリのルートディレクトリに移動する
$ git init #リポジトリの初期化
$git add -A #すべての更新ファイルをステージに移動
$git status #ステージングの状況を確認 #現状ではすべての更新ファイルがステージングされて緑で表示
$git commit -m "Initialize repository" #メッセージを追加するcommitのコマンド メッセージ→"リポジトリを初期化"
$ git log #ログ表示 「q」で終了
git initでセットアップする。
1.5.1 Herokuのセットアップ
gemfileを書き換える。
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'rails', '6.0.3'
gem 'puma', '4.3.4'
gem 'sass-rails', '5.1.0'
gem 'webpacker', '4.0.7'
gem 'turbolinks', '5.2.0'
gem 'jbuilder', '2.9.1'
gem 'bootsnap', '1.4.5', require: false
group :development, :test do
gem 'sqlite3', '1.4.1'
gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '4.0.1'
gem 'listen', '3.1.5'
gem 'spring', '2.1.0'
gem 'spring-watcher-listen', '2.0.1'
end
group :test do
gem 'capybara', '3.28.0'
gem 'selenium-webdriver', '3.142.4'
gem 'webdrivers', '4.1.2'
end
group :production do
gem 'pg', '1.1.4'
end
# Windows ではタイムゾーン情報用の tzinfo-data gem を含める必要があります
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
Herokuではsqlite3は使えない。PortgreSQLを使う。
本番(production)環境にpg gemをインストールしてRailsがPostgreSQLと通信できるようにする。
sqlite3 gemが本番環境に導入されないようにしておく。
bundle install --without production
本番用以外のgemをインストールする。
$ heroku --version
Herokuがインストールされているか確認する。されていなかった。
$ source <(curl -sL https://cdn.learnenough.com/heroku_install)
Herokuをインストールする。
$ heroku --version
確認。OK。
$ heroku login --interactive
herokuにログインする。 --interactiveはブラウザを開かないようにするやつ。
$ heroku create
Herokuに新しいアプリケーションを作成する。
$ git push heroku master
HerokuにリポジトリをPUSHする。
heroku createの時に出てきたURLを開くとデプロイ完了が確認できる。
$ rails webpacker:install
webpackerがないと怒られたとき。