LoginSignup
1
0
はじめての記事投稿
Qiita Engineer Festa20242024年7月17日まで開催中!

実務未経験の初心者がRailsを学習してみた

Last updated at Posted at 2024-06-17

① はじめに

初投稿になります🌷
IT業界に未経験で転職して約1週間が経過し、
元々HTML/CSSの知識がごく僅かしかない私が、Ruby on Railsを学習してみました。
特に重要だなと思ったところや、自分の中で引っかかったところを中心にアウトプットしていきます!

② 使用した教材

今回はudemyの、
はじめてのRuby on Rails入門-RubyとRailsを基礎から学びウェブアプリケーションをネットに公開しよう を使って勉強しました。

スクリーンショット 2024-06-10 13.29.11.png
                              (概要より引用)

この教材を使っている前提で進めていきます🙇‍♀️

③ AWS Cloud 9 で開発環境の構築

セクション2では AWS Cloud9 の開発環境の構築を行いました。

〜AWS Cloudとは〜
AWSが提供しているクラウド環境でアプリケーションの開発やデータベースなどの利用が可能な
IDE(統合開発環境)のこと。
※AWS・・Amazon Web Services の略

講座の手順通り、Cloud9を作成していきます。

作成後、まずはインストールしてあるRVMのバージョンをターミナルで調べます。

〜RVMとは〜
Rubyのバージョンを切り替えるソフトウェアのこと。
※RVM・・Ruby Version Manader の略

スクリーンショット 2024-06-10 16.29.57.png

ターミナルに $ rvm -v を入力してバージョンを確認
→ rvm 1.29.12
すなわちバージョンは 1.29.12ということが確認できます。

今回の講座では、「Ruby 3.0.2」が推奨されているので、
rvmで切り替えることの出来るRubyのバージョンを調べます。

ターミナルに $ rvm list を入力
スクリーンショット 2024-06-10 16.41.26.png

ruby-3.0.2とruby-3.2.2 があり、ruby-3.2.2が現在選択されています。
これをruby-3.0.2に変更するには、
ターミナルに $ rvm use 3.0.2 を入力
→Using ruby-3.0.2 と記載があり、
ruby-3.0.2に変更されました。

スクリーンショット 2024-06-10 16.54.11.png

これでRuby入門のための環境構築が完成しました。
ここまでで大体3時間ほどかかりました😇(かかりすぎ)

原因としては、Cloud9を作成するときに全て英語でわかりづらかったからです。😇
あと、 google chrome での作成が必須だったにも関わらず、
説明をしっかり読まなかった結果 safari から作成していたため
全てやり直すという痛い目をみました・・しっかり説明文は読みましょう(自戒)

④ Ruby入門

〜前提知識〜
Ruby・・プログラミング言語
Ruby on Rails・・Rubyで書かれたWebアプリケーションのフレームワーク

ーー自分メモーー

⚪︎変数名の命名規則
・アルファベットの小文字orアンダースコアで始まる
・それに続けて、アルファベット・数字・アンダースコアで記述する

⚪︎定数
・変化しない(または頻繁に変化しない)値を扱う時に使う
 ex)手数料率、消費税率、円周率

⚪︎リテラル
・Rubyのプログラムの中に直接記述出来る値のこと
 ex)数値の123や文字列の'Hello'など

⚪︎整数同士の割り算は整数になるため、
 小数点以下の値が必要な場合はどちらかの値を小数点表記にする

スクリーンショット 2024-06-10 18.02.29.png

⚪︎xに .to_f を付けることで、整数を小数点付きの数字で表記することが出来る
スクリーンショット 2024-06-10 18.06.27.png

⚪︎文字列(\)
・バックスラッシュを使うと改行される(下の行を参照)
スクリーンショット 2024-06-10 19.06.04.png

⚪︎演算子の優先順位がわからなくなった時
・リファレンスマニュアルを確認する
https://docs.ruby-lang.org/ja/3.0/doc/spec=2foperator.html

if構文

スクリーンショット 2024-06-10 20.32.38.png

if 条件1
#条件1が真の値の時に実行したい処理
elsif 条件2
#条件2が真の値の時に実行したい処理
elsif 条件3
#条件3が真の値の時に実行したい処理
else
#それ以外の処理
end

unless構文

unless 条件式
#条件式が偽(false)の時に実行したい処理
else 条件式
#条件式が偽(false)でない場合、すなわち真(true)の時に実行したい処理
end

※elsifに相当するものはない
※elseは省略可能

case構文

スクリーンショット 2024-06-11 19.47.57.png

case対象のオブジェクトや式
when 値1
#値1に一致する場合の処理
when 値2
#値2に一致する場合の処理
when 値3
#値3に一致する場合の処理
else
#どの値とも一致しない場合の処理
end

メソッド構文

スクリーンショット 2024-06-11 20.04.20.png

def メソッド名(引数1,引数2・・)
#実行したい処理
end

★メソッド
・複数の処理を1つにまとめて、扱いやすくしたもの
・クラス内に定義する

配列

・複数のデータをまとめて格納できるオブジェクトのこと
・配列内のデータ(要素)は順番に並んでいて、添字(インデックス)を指定することでデータを取り出せる

[要素1,要素2,要素3] のように作成

ハッシュ

・キー(key)と値(value)の組み合わせでデータを管理するオブジェクト

{キー1=> 値1,キー2 => 値2, キー3 => 値3} のように作成

繰り返し処理:each

スクリーンショット 2024-06-11 20.35.15.png

配列やハッシュ.each do |変数|
#繰り返し実行したい処理
end

繰り返し処理:for (原則使わない)

for 変数 in 配列やハッシュ do
#繰り返し実行したい処理
end

繰り返し処理:times

・配列を使わずに、単純にn回処理を繰り返したい場合に使う

スクリーンショット 2024-06-11 20.47.09.png

繰り返し回数.times do |i|
#繰り返し実行したい処理
end
※|i|は省略可能

繰り返し処理:while

スクリーンショット 2024-06-11 20.49.11.png

while 条件式 do
#繰り返し実行したい処理
end

繰り返し処理:upto

・nからmまで数値を1ずつ増やしながら、何かしらの処理を実行したい場合に使う

スクリーンショット 2024-06-12 9.16.32.png

開始値.upto(終了値){繰り返し実行したい処理}

繰り返し処理:downto

・nからmまで数値を1ずつ減らしながら、何かしらの処理を実行したい場合に使う

開始値.downto(終了値){繰り返し実行したい処理}

繰り返し処理:step

・nからmまでxずつ値を増やしながら、何かしらの処理を実行したい場合に使う

スクリーンショット 2024-06-12 9.20.48.png

開始式.step(上限値,一度に増減する大きさ){}

モジュール

・クラスのようにメソッドや定数をまとめられるもの
・クラスとの違いは、「インスタンスを作ることができない」「継承ができない」

module モジュール名
#モジュールの定義(メソッドや、定数など)
end


★rubyの入門セクションの内容を整理するためにメモをしましたが、
 正直今はまだあまり理解度が深くないです・・
 でも、初めて見るものと1回でも見たことがあるものとでは
 全然違うと思うので、今は頭に入ってなくても良しとしています

⑤ Ruby on Rails入門

⚪︎MVCアーキテクチャ
・Model
  データベースアクセスなどデータ関連処理
・View
  画面表示
・Controller
  リクエストやレスポンスを制御
   ViewとModelの橋渡し

⚪︎ERB
・Embedded RuBy の略
・htmlの中にrubyのプログラムを埋め込むことが出来る

⑥ミニ Q&A サイトの開発

CRUDとは?

・Create・・作成
・Read・・表示
・Update・・更新
・Delete・・削除

ウェブアプリケーションの大半はこの4つの機能の組み合わせで成り立っている

講座通りに進めていましたが、「115.質問モデルを作成しよう」で
初めてエラーが出てしまいました。

スクリーンショット 2024-06-12 10.59.35.png

これはインデントが半角になっていなかったことが原因でした🙇‍♀️
気をつけて入力したいと思います!


そのまま進めていくとまたもやエラーが・・

スクリーンショット 2024-06-12 11.11.20.png

講座の通りにやっていましたが、「content」ではなく「contect」なのでは?と
言われてしまっています涙

会社の方にアドバイスを貰いましたが、それでもエラーが解消されなかったため、
泣く泣く1からやり直しました。

原因をしっかり突き止めてからやり直したかったのですが、
時間もなかったため止むを得ず・・

やり直したところ、無事にエラーは発生せず😢
殆どのエラーが誤字が原因だったため、少し気持ち悪い感じに終わりました。


そのまま進め、完成することができました✨

スクリーンショット 2024-06-12 11.41.24.png
スクリーンショット 2024-06-12 11.41.44.png

                               (一部抜粋)

⑦ 学習してみた感想

・誤字には十分注意する
・エラーが出てきた時はどこが原因かすぐわかるようにこまめに確認する
・今回は一通りやって作る!という目標が達成でき、自信が少しついた(未経験者的思考)
・何がなんの意味を持っているのか、あまり理解出来なかった
 →2週目は理解を深めるためにも、1つ1つ意味を調べながら学習する
・構文やメソッドの意味が多すぎる
・環境構築が大変
・完成した時は素直に嬉しかった😊


次はログイン機能を学べる教材で学習していきます✏️

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0