Railsチュートリアル3章 前半まとめ
動画の時間は47分ぐらいだが、結構新しい知識(主にGit系)が多かったので、まとめて書くと死ぬほど長くなるし前後半で分けることにします!
3章 セットアップ、Git
今回は主に便利機能や実践的なものの補完として記載します。
■ポイント
・sample_appのrails new はこの章で行う。
rails new sample_app
・ディレクトリを移動させるよ!
(移動させたいディレクトリに自らが移動をし)
mv ディレクトリ名 ./
・Cloud9,AWS環境でCommand+Pでディレクトリ検索可能。
・git remote add origin
→オリジンというショートカットを作り、そのショートカットを使えばGitHubにpushできる仕組み
・git push origin master
これは何度でもしていい。不安ならしておく。
とにかくコミットしたらpush! コミットしたらpush!を繰り返せ。
感謝のコミットpush1万回。
・git check -b static-pages フィーチャーブランチっていうらしい
この場合はstatic-pagesというブランチが作成される。
(同じディレクトリでもmaster以外に移動できる場所。)
開発環境も本番環境もちゃんと動いている状態で、新しい機能を試したい時に使う。
masterは常に安定した状態を保ちたい。
新しいブランチを生やすともいう。
→git branch
今いるところを表示
→git checkout master
これで移動できる
バージョンによってはgit switch static-pageなどでも移動できる
→ちゃんと上手くいったらmargeでmasterに組み込める
■総括
これ思いました。
Railsチュートリアルの動画って各章ごとに前半後半って動画が別れてるんですが、
アウトプットもそれに準拠してやった方が整理がしやすい。
ので!これからは各章分けてアウトプットの効率を上げていきます。
絶対踏破してノウハウをものにしてやる!
Railsチュートリアル2章 まとめ
scaffoldを使ったらどういうディレクトリが作成されて、どういう挙動をするのか。
rails generate scaffold User name:string email:string
通常コントローラーを作成するタイミングでscaffold。これは「土台」という意味。
index,show,new,editアクションが自動的に生成された。細かいスタイルみたいなのも当たっていた。便利すぎる。でもバリデーションとは当たってなかったからあくまでも下地?基礎?をさらっと作ってくれる。
実務で使う事はあるにはあるが、ケースバイケース。(らしい)
ただし、scaffoldに頼っていては完全に理解が出来た!とは言えないので、3章以降は使わないとのこと。
■ポイント
・MVCの動き
1.ブラウザから「/users」というURLのリクエストをRailsへ送信。
2.そのリクエストはRailsのルーティングによってUserコントローラ内のindexアクションになる
3.indexアクションが実行され、そこからUserモデルに「全てのユーザーを取り出して」という意味の「User.all」で問い合わせる。
4.Userモデルは問合せを受け、全てのユーザーかをデータベースから取り出す。
5.データベースから取り出しユーザーの一覧をUserモデルからコントローラに返す。
6.Usersコントローラは、ユーザーの一覧を@users変数(@はRubyのインスタンス変数!)に代入し、indexビューに返す。
7.indexビューが起動し、ERB(ビューのHTMLに埋め込みがされているRubyコード)を実行してHTMLをレンダリングする(生成)。
8.コントローラはビューで生成されたHTMLを受け取り、ブラウザに返す。
なんで変数が@usersなのかは説明できそうで出来ない・・・Rubyの勉強もします。
・RESTアーキテクチャ
REpresentational State Transferの略。
アーキテクチャ(構造)のスタイルのひとつ。
ここは説明を読んだけど理解できないので、14章で詳しくやった時に絶対理解する。
・scaffoldにデメリットもある。
あくまで土台なので、ユーザー認証が無かったりテストが書かれていなかったりする。
コードが複雑で理解しがたい。
・UserとMicropostをscaffoldで作ったけど、本書でこの二つをリソースと読んでいるのはscaffoldだから?聴き慣れない言葉が出てきた。
・ユーザーはたくさんマイクロポストを持っている
1人のユーザーに複数のマイクロポストがある。
app/models/user.rb
class User < ApplicationRecord
has_many :microposts
end
1つのマイクロポストは1人のユーザーにのみ属する。
app/models/micropost.rb
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: { maximum: 140 }
end
マイクロポストのコンテンツが存在しているかどうかの確認
app/models/micropost.rb
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: { maximum: 140 },
presence: true
end
・rails consoleの仕組みを軽く。
■最後に
うん、理解はできてるけど。とっさに書けと言われたらまだ書けない。
とりあえず先に進むことが大事だから進みます!
Railsチュートリアル1章 まとめ
早速、今勉強中のRailsチュートリアルの1章の私的総括です。
基本的には学んだことの簡単な概要とウィークも含めてポイントだけ記載していきます。
〜ゼロからデプロイまで〜
1章ということなので、Railsとは何かをゼロから解説。その後、AWSで開発環境を構築し、簡単な文字列を表示させてそれをデプロイすることろまで。
AWSは今のトレンドと言われているみたいなので、ゼロからデプロイまでのフローチャートを触れてよかった。(スクールではローカル環境みたいなので)
Progateで事前に基礎は学習していたので、言っている事は理解出来る。
■ポイント
・全体的な理解は出来ているが、最初のセットアップの流れを完全に覚えたわけではない。この教材で反復することになるのでここは自然と覚えてくるはず。
・gemfileの表記の意味
gem 'rails', '~> 6.0.3' 6.0.3と同じかそれより上であり、かつ6.1より小さい場合にインストールされる。
・ローカルWEBサーバーへの接続を許可する必要が生じることもあるので、
config/environments/development.rb
の末尾に config.hosts.clear を記載。
・よくGit大事、Git大事と言っているのをTwitterなどでも見かけるのでここはさくっとできるようにならないと。コマンドも覚えていく。
・リポジトリを作成する時に必ず「Private」にチェック。
・HerokuではPostgreSQLを使うので、本番環境にpg gemをインストール。
group :production do gem 'pg', '1.1.4' end
・HerokuではSQLiteがサポートされていないため、sqlite3
gemが本番環境に導入されないようにする。
group :development, :test do gem 'sqlite3', '1.4.1' gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw] end
・Herokuもコマンド覚えていく。
デプロイ出来た!ちょっと感動した!
■まとめ■
- Ruby on Railsとは、Web開発のためのフレームワークであり、Rubyプログラミング言語によって記述されている。
- 事前設定済みのクラウド環境を利用することで、Railsのインストール、アプリケーションの生成、生成されたファイルの編集を簡単に行うことができる。
- Railsには
rails
という名前のコマンドラインコマンドがあり、rails new
で新しいアプリケーションを生成したり、rails server
でローカルサーバーを実行したりできる。 - コントローラのアクションを追加したり、ルートルーティングを変更したりするだけで「hello, world」アプリケーションを作成できる。
- データの喪失を防止し、他の開発者との共同作業を行えるようにするため、Gitによるバージョン管理を導入してGitHubの非公開リポジトリにプッシュする。
- 作成したアプリケーションをHerokuの本番環境にデプロイした。
初投稿記念!
8月からプログラミングスクールに通うので、アウトプットする場所としてはてなブログさんを使うことに決めました!
(WordPressも悩んだけどアウトプットのみが目的なのでこっちにしました。)
簡単に自己紹介をさせていただきますと、プログラミングを初めて1ヶ月半程です。
プログラミングを始めた理由はいくつかあるのですが、簡単にいくつか挙げるとするなら
・これまで社会人経験などを経て、自分の力を一番発揮できるのは誰かのために何かをして、役に立つことと気づいた。
・利便性の高い世の中に役に立つコンテンツを「作る側」に廻り、IT普及率に則り一人でも多くの方に自分の作ったコンテンツを使ってもらいたくて、エンジニアを志望。
・このご時世、アナログではなくデジタルで仕事ができないと万が一の時に何も出来なくなってしまう。
というのが主な理由です。他にもありますが割愛します。
自分の経歴としてはドラムの講師をやって生計を立てたり、営業戦略を生業としてやっていたりしました。まあその話はいずれ・・笑
年齢は31歳です。仕事もやめて、もう後がないですがなるようになりますし、なるようにします!
ではこの辺で・・!
アウトプットの仕方はまだ定まっていないので、探り探り投稿していきます!