Rails

【Progate】Ruby on Railsコース完了

ここ最近ProgateでRuby on Railsの学習を行っており、無事完了することができました。

さすがWebサービス作成のためのフレームワークだけあってボリューミーな内容でした。

今回はそんなProgateのRuby on Railsコースについてまとめていきます。

【Progate】Ruby on Railsコースの概要

Ruby on Railsコースは11の学習コースと4つの道場コースで構成されており、かなりボリュームが大きくなっています。

もちろんコースの中の1つ1つの内容もRubyなどのプログラミング言語よりも濃ゆくなっています。

内容としてはTweetAppというTwitterのクローンアプリを作り上げていきます。

【Progate】Ruby on Railsコースで学習できること

ProgateのRuby on Railsコースで学習できること(僕がメモ)したことをご紹介します。

Railsアプリの作成

Railsのアプリを作成するためのコマンド。

実行するとアプリ名で指定したフォルダが作成される。

アプリ名/app アプリのメインフォルダ
アプリ名/config 設定情報に関数流フォルダ(ルーティングファイルはここ)
アプリ名/db データベースに関するフォルダ


Railsサーバーの起動

Railsに内包されている簡易Webサーバーを起動するコマンド。

コントローラ作成コマンド

コントローラの作成コマンドです。

実行すると指定したアクションに対応するビューファイルも同時に生成される。

コントローラは「アプリ名/app/contollers/コントローラ名_controller.rb」、ビューは「アプリ名/app/view/コントローラ名/アクション名.html.erb」に作成される。

既に該当のコントローラが存在する場合はコマンドは使用できないので、手動で上記ファイルを作成する必要がある。

CSSファイルについて

各ビューファイルのCSSファイルは「アプリ名/app/assete/stylesheets/コントローラ名.scss」にコントローラ単位に存在する。

@変数

コントローラのアクションで先頭に@をつけて変数を宣言するとビューでも使用できる。

モデル作成コマンド

指定したモデルを作成しつつ、モデルに沿ったテーブルを作成するマイグレーションファイルを作成するコマンド。

モデルは「アプリ名/app/models/モデル名.rb」にファイルが作成される。

マイグレーションファイルは「アプリ名/db/migrate/YYYYMMDDHHMMSS_create_テーブル名(モデル名の複数形).rb」というファイルが作成される。

マイグレーションファイルについて

マイグレーションファイルはデータベース(テーブル)を作成する前段階のファイル。

次に説明するマイグレーションコマンドを実行することでマイグレーションファイルの内容がデータベースに反映される。

でマイグレーションファイルのみを作成することが可能

マイグレーションコマンド

上記でも挙げた通り、マイグレーションファイルに記載された内容をデータベースに反映するコマンド。

マイグレーションコマンドを実行していいないマイグレーションファイルが存在する場合は、ブラウザでいずれかのビューを表示した際にエラー(マイグレーションエラー)が発生する。

DB操作

主にコントローラでDBを操作する時のコマンド。

共通レイアウト

ヘッダー(header)などの共通のレイアウトは「アプリ名/app/view/layouts/application.html.erb」に記述することができる。

link_toメソッド

HTMLのリンクタグ(aタグ)を生成するメソッド。ビューファイルで使用できる。

第3引数に「{method: post}」を指定すると、リンク先への送信が「post」送信となる。(ルーティングのpost読み込まれる)

ルーティングについて

とすることで、idなどの変数をURLに使用することができる。

form_tagメソッド

inputやtextareaタグのname属性を指定すると、入力データを送信先に送信できるようになる。

コントローラ側(送信先)での値の取得方法は「params[:name属性の値]」となる。

redirect_toメソッド

コントローラにて使用することで、指定したURLにリダイレクトすることができる。

renderメソッド

通常はコントローラを通してビューを表示するが、renderメソッドを使用することで、コントローラを通すことなく、指定したビューを表示することができる。

バリデーション

データベースに登録する際の制限をモデルに記述する。

flash変数

コントローラでflash[:notice]に値を代入すると、flash[:notice]をビューで使用することができる。

flash変数は一度使用されると自動的に削除されるので、エラーメッセージの一時表示などに使用できる。

画像の送信

フォームで画像を送信する場合は、form_tagメソッドの第2引数に「{multipart: true}」を指定する必要がある。

ファイルの作成(テキストファイルなど)

画像の保存

FIle.binwrite(“保存するファイルの場所”, 画像のname属性の値.read)

セッション変数

セッション変数を活用することで、コントローラ、ビューのどちらでも格納した値を使用することができる。

ログイン情報の管理などに使用される。

beforeアクション

指定したアクションの前に実行するアクションを指定することができる。

applicationコントローラ

共通のコントローラ。

アプリ名/app/contorollers/application_contoroller.rb

【Progate】Ruby on Railsコース学習のポイント

僕が感じた学習のポイントはきちんとテーブル関連を理解してから進めるということ。

テーブル関連を理解しないまま進めると、何がしたいか分からないけど、とりあえず言われた通りにコーディングするっていう風にしかなりません。

最終的なテーブル関連とテーブルの役割をまとめたので参考になれば幸いです。

まとめ

ProgateはHTML&CSS、JavaScript、jQuery、PHP、Rubyと学習してきましたが、他と比べると難易度は高いです。

そして、ボリュームも桁違いに大きくなってます。

油断してると本当にただ指示されることをコーディングするだけになってしまうので、時間がかかっても言われてる内容をしっかりと理解し、「今何のためにコーディングしているか」ということを忘れないことが必要です。

場合によって2周ぐらいするのもありかと思います。

ちなみに道場コースは学習コースの復習になるので、とばしてしまっても構わないと思います。(現に僕もとばしました。)

さぁつぎはRailsチュートリアル

1度挫折しているので、今回は挫折しないようにしっかりとやっていきます。

ABOUT ME
Jyu2
ソフトウェア会社(SIer)で10年以上勤務のシステムエンジニア|ポケットWiFi使用歴2年以上|ポケットWiFi+αで快適でお得なインターネット環境を構築するための情報を発信|その他、IT情報やWebサービス、アプリ、ガジェットなどの情報を発信|自分と他の人のカバンの中身を紹介するメディア「カバンの中身ラボ(https://kaban-no-nakami-labo.com/)」も運営しています。 ポケットWiFi選びに迷ったらTwitter、お問合せフォームからご連絡ください。