Rails Tutorial2章をローカル開発環境でやってみる
■Rails Tutorialをローカル環境で開発してみる
・RailsTutorial
https://railstutorial.jp/
●設定環境
MacOSX
・10.13.6
一通りドットインストールやProgateでも学習が終わったので、次はRailsTutorialでGitのバージョン管理を学びながら進めて行きたいと思います。
RailsTutorialでは開発環境にcloud9
GitサービスにBitbucketを使用していますが、今回はローカルで開発環境を構築しGitサービスはGitHubを使って行こうと思います。
理由としては、過去にRailsTutorialで学習したことがあったのですが、cloud9があまり好みでなかったのと、GitHubの方がよく耳にするサービスだったからという理由になります。
なので、RailsTutorialの環境構築手順と違うところがあるので、そこらへんが「Google先生」にたくさん質問しながら進めて行きます。
■参考サイト
●ローカルでの開発環境構築
http://railsgirls.jp/install
railstutorialないにリンクがありますが、上記のページを参考にしました。
●Gitの設定やGitHubの設定を参考にしたページ
https://qiita.com/mxsha/items/08f076b4d1437f44f8bd
https://techacademy.jp/magazine/6235
上記のページを参考にさせていただき、無事に設定することができました。
・本番環境へのHerokuを使ったデプロイに関しては今のところスキップしある程度の物が出来上がってから実施するという予定で進めていきます。
■2章Toyアプリケーションの作成
この記事では進め方解説というよりは、僕個人があとから復習できるような学習メモという感じでいきます。
●ローカル開発環境で作業する場所(作業ディレクトリを作成)
$ mkdir enviroment $ cd enviroment
作成したenviromentディレクトリ配下にrailsアプリをrailsのバージョンを指定して作成します。
$ rails_5.1.6_new toy_app
次にrails_5.1.6_new toy_appで生成された、Toyアプリ用のGemfileの編集をします。
source 'https://rubygems.org' gem 'rails', '5.1.6' gem 'puma', '3.9.1' gem 'sass-rails', '5.0.6' gem 'uglifier', '3.2.0' gem 'coffee-rails', '4.2.2' gem 'jquery-rails', '4.3.1' gem 'turbolinks', '5.0.1' gem 'jbuilder', '2.7.0' group :development, :test do gem 'sqlite3', '1.3.13' gem 'byebug', '9.0.6', platform: :mri end group :development do gem 'web-console', '3.5.1' gem 'listen', '3.1.5' gem 'spring', '2.0.2' gem 'spring-watcher-listen', '2.0.1' end group :production do gem 'pg', '0.20.0' end
Gemfile内を上記に書き換える
$ bundle install --without production
を実行することで本番用のgemを除いたローカルgemをインストールできるみたいです。
次に作成したToyアプリをバージョン管理下に置きます。
$ git init $ git add -A #全てのディレクトリをインデックス(ステージエリアに上げておく) $ git commit -m “Toyアプリをコミット” #インデックスからリポジトリにコミット
コミット時のメッセージが指定されているメッセージと違うが日本語の方が個人的に分かりやすいので日本語のメッセージに変更
GitHubのwebページのアカウントに新しくリポジトリを作り、そのリモートリポジトリにプッシュしていきます。
>>https://techacademy.jp/magazine/6235
GitHubでリポジトリ作成とプッシュの方法を上記のページを参考に実施しました。
$ git remote add origin <GitHubでリポジトリ作成後に表示されたURL> $ git push origin master #ローカルレポジトリをプッシュしてリモートリポジトリに反映 上記を実行したさいにGitHubのユーザー名とメールアドレスを尋ねられるので入力します。
■ブランチ
ブランチとは、元のmasterの状態から分岐し並行してバージョン管理を行う仕組み
分岐した先のコードかめちゃめちゃになっても元のmasterが書き換わっていなければ、ブランチを削除して元の状態から始めることができるというメリットがある。
そして分岐したブランチでの作業が終わったらmasterブランチへマージする流れ
ていう覚え方で知識的に足りないところはいっぱいありそうだけど、とりあえず1人で開発する上では上記の認識で問題なと思う、、、
■scaffoldを使う
scaffoldはよく分からないけどすごい便利な機能などを簡単にパパッと作ってくれるものだと認識してるんですが、簡単にパパッとすぎて理解するには少し分かりづらい印象があります。
現にRailstutorialないのscaffoldのusersリソースの欠点という項目ありこんな記述がありました。
1.データの検証が行われない
┗ユーザー名やでたらめなメールアドレスが入力されても通ってしまう
バリデーションが設定されていない
2.ユーザー認証が行われない
┗ログイン、ログアウトが行われないので、誰でも無制限に操作ができてしまう。
これは操作権限の付与もできないので困ってしまいますね。
3.テストが書かれていない
ここは分からないのでコメントなし
4.レイアウトが整っていない
┗サイトデザインも、操作性も一貫していない
scaffoldで生成されたページはとても簡素なページだったので、そういうことでしょうか
5.理解が困難
┗scaffoldのコードが理解できるならRailstutorialは必要ない
やっぱり書いてありましたね、僕も簡単に作られすぎて理解が全く追いついていないです。
$ rails g scarole User name:string email:string $rails db:migrate #データベースをマイグレートする
※railstutorialではrails serverでサーバーを立ち上げるんですが、今回はサーバーをバックグラウンドで立ち上げていきます。
理由としてはなんか、バックグラウンドがかっこいいのと、1つのterminalを使っていきたいという理由になります。
$ rails s -d
バックグラウンでrailsサーバーを立ち上げます。
●バックグラウンドで立ち上げたサーバーを停止する方法
$ ps aux | grep puma #プロセス番号を確認 $ kill -9 <確認したプロセス番号を入力>
これでバックグラウンドで動いていたrailsサーバーも停止することができます。
一応停止したことを確認するために
http://localhost:3000/ へ接続して開くことができなければ停止していると判断
ブログを書くって意外と疲れるという事実を発見しました。
続きは次回の記事に書いていこうと思います。