Ruby on Railsの入門サイトの記事をざっと試したので、次のステップとして実際に何かしらウェブアプリを作成して公開するところまで進めたいと思いましたが、まだ自由に作成するほどの知識は全く培われていません。。
そこで、UdemyのRails入門のチュートリアルをやっていくことにしました。
同じ作者の「MySQL + SQL入門」にもお世話になりました。
こちらのレクチャーの特徴としては下記のような感じです。
・AWS Cloud9 環境で開発する
・Rubyの基本構文を学べる
・Ruby on Railsの基本を学べる
・ミニQ&Aサービスの開発とネット上への公開を学べる
新規質問を投稿、質問の編集、削除、詳細表示
回答の投稿、回答の編集
Bootstrapでお手軽に見た目を変える
HerokuとGitを使って公開
印象としては、Railsの章に入ると非エンジニアが入門としていきなり始めるには敷居が高いと思いました。私の場合は事前にSQLを軽く触っていたことと、Rails入門記事を一通り行っていたのでなんとか理解が追いついた感じでした。
環境構築
AWS Cloud9 にて環境構築を進めていく流れになっています。
[Udemyの環境]
Ruby 2.5.1p57
Ruby on Rails 5.2.1
RVM 1.29.3
Gems 2.7.6
SQLite 1.3.13
Bootstrap 4.1.1
JQuery-Rails 4.3.1
[この記事を書いた時点での環境]Ruby 2.5.1p57
Ruby on Rails 5.2.1
RVM 1.29.7
Gems 2.7.9
SQLite 1.3.13
Bootstrap 4.1.1
JQuery-Rails 4.3.1
Cloud 9 はドットインストールで試したことがあるのでAWSアカウントはすでに作成済みですが、今一度行ったことなども含めてメモしておきたいと思います。
ちなみに「はじめてのRuby入門」のセクションはとりあえずパスして「はじめてのRuby on Rails入門」のセクションは一通りざっと試しました。
・IMAでユーザーを追加、そのユーザーでログイン
・Cloud9の環境を追加
リージョン選択
エンヴァイロメント作成
テキストエディタの設定(タブスペース・不可視文字)
環境のアップデート「sudo yum update」
RVMで Ruby 2.5.1 をインストール「rvm install 2.5.1」
Ruby 2.5.1 を選択「rvm use 2.5.1」
Ruby 2.5.1 をデフォルトに指定「rvm --default use 2.5.1」
Ruby on Railsをインストール「gem install rails -v 5.2.1 -N」
・バージョン管理はRVM(Ruby Version Manager)を使用
Rubyのバージョンをコマンドひとつで切り替えられるの、めちゃ便利ですね。
・BundlerはRubyGemsを管理するツール
RubyGemsはRubyで書かれたサードパーティ製のライブラリ
Q&Aサイト構築メモ
・Railsプロジェクト「Q&A」をバージョン指定して作成
SQLiteのバージョンを指定して「bundle update」で更新
「rails db:create」でデータベースを作成
「questions」コントローラを作成
「question」モデルの作成して、マイグレートする
ルーティングの設定(resourcesとroot)
コントローラの設定
テンプレートの設定
シードファイルでデータベースの初期データを追加
Bootstrap と JQuery の導入
Bootstrap と JQuery を使うよう application.scss と application.js を編集
ページ共通レイアウト application.html.erb を編集
フォームヘルパーを使ってフォームをHTMLに実装、データベースとやり取り
データベース操作絡みのメモ
[DBコンソール]
rails dbconsole ‥ SQLiteを操作するDBコンソールの開始
.q ‥ DBコンソールの終了.tables ‥ テーブル情報を確認
.chema テーブル名 ‥ テーブルを指定してカラム情報を確認
[Railsコンソール]
rails c ‥ Railsコンソールの開始
exit ‥ Railsコンソールの終了User.all ‥ usersテーブルの全てのデータを取り出す
route.rb の設定周りのメモ
# リクエストURLがルートの場合に指定コントローラのindex.htmlを表示
root 'コントローラ名#index'# 基本的なコントロール&アクションをまとめて設定してくれる
resources :コントローラ名
フォームを通してデータベースに値を追加したり、ウェブアプリの形を成してきている反面、HTMLとRubyの記述で何をやっているのかが理解し切れず。。
調べるのは「HTML」「フォームヘルパー」あたりですね。
このあたりの必要最低限の部分も、徐々に習得していこうかと思います。
とりあえず「new.html」のフォームを作成した時点で、何をやっているのかなんとなくのイメージで図を作ってみました(こちらから100%サイズで閲覧できます)。
うん。ちょっとだけ理解が進みました。
モデル作成時に自動で生成された「Question」クラスのメソッドを色々と使ってデータベースとやり取りしてるんですね。ローカル変数「@questions」をHTMLの方で使っていたりしていてスコープがどうなってるのか分かっていないため、変数とのやり取り周りも頭に「?」が浮かんでいますが。。
参考にさせていただいた記事のメモ
ペタペタと貼り付けておきます。感謝!
ちなみに Cloud 9 のショートカットをまとめられている記事はこちら。
特に複数行の一括コメントアウト「Ctrl + /」が便利です。
現在Udemy動画の「セクション5 レクチャー113」が終了したところです。
とりあえず今回はここまで!