モデル
1.テーブル
・データベース内に作成される、データを表形式で収納する場所
2.レコードとカラム
・表形式のテーブルに置いて、行(横方向)はレコード、列(縦方向)はカラムと表現する
3.モデル
・Railsの中でデータベースへのアクセスを元とする情報のやりとりに関する処理を担当
4.rails g modelコマンド
・モデルやそれに付随するファイルを一度に作成してくれるコマンド
rails g model モデル名
・モデルの命名規則は、単数形を使用すること
5.マイグレーション
・テーブルの設計図、使用書であり、どのようなテーブルにするのかをマイグレーションファイル内へ記載する
・マイグレーションファイルの記述で、テーブルのカラム名などの使用が決まる。
・t.に続くのがカラムの型、その右側にシンボルで記載される物がカラム
6.カラムの型
・カラム名を指定するとともに、そこにどんなデータが入るかを示す「型」を指定する必要がある
カラムの型 |
説明 |
用途 |
integer |
数値 |
金額、回数など |
string |
文字(短文) |
ユーザー名、メールアドレスなど |
text |
文字(長文) |
投稿文、説明文など |
boolean |
真か偽か |
はい・いいえの選択、合格・不合格のフラグなど |
datetime |
日付と時刻 |
作成日時、更新日時など |
7.rails db:migrateコマンド
・マイグレーションに記述した内容を、データベースに適用するためのコマンド
・マイグレートという
8.rails db:rollbackコマンド
・マイグレーション実行による変更を差し戻すためのコマンド
・ロールバック→修正→マイグレートでテーブルを修正する
・ロールバックという
9.rails db:migrate:statusコマンド
・マイグレーションが実行済みであるかファイルごとに調べるコマンド
・実行済み→up 適用されていない→down
ルーティング、コントローラー、ビュー
1.ルーティング
・リクエストの行き先を指定する道標
・configディレクトリのroutes.rbに記述する
Rails.application.routes.draw do
[HTTPメソッド] '[URIパターン]' , to: '[コントローラー名]#[アクション名]'
end
2.rails routesコマンド
・アプリケーションで設定されているルーティングを確認できる
3.コントローラー
・リクエストの対応する処理をまとめて用意しておき、ルーティングからリクエストを受け取って処理を行なった後、クライアントにレスポンスを返す
4.rails gコマンド
・Railsアプリに追加で必要なファイルなどを生成するために使用するコマンド
rails g ファイルの種類 生成するファイル名
5.rails g controllerコマンド
・コントローラーやそれに付随するファイルを一度に作成してくれるコマンド
rails g controller コントローラー名
・コントローラー名は必ず、複数形を使用する
6.rails dコマンド
・rails gコマンドで生成したファイル一式を全て削除するコマンド
・一つのファイルだけではなく、関連するファイルも一気に削除してくれる
rails d ファイルの種類 削除するファイル名
7.アクション
・コントローラー内における処理のカテゴリー
・アクションはコントローラーにインスタンスメソッドとして定義する
アクション名 |
どのような時に動くか |
index |
一覧表示ページを表示するリクエストに対応して動く |
new |
新規投稿ページを表示するリクエストに対応して動く |
create |
データの投稿を行うリクエストに対応して動く |
show |
個別詳細ページを表示するリクエストに対応して動く |
edit |
投稿編集ページを表示するリクエストに対応して動く |
update |
データの編集を行うリクエストに対応して動く |
destroy |
データの削除を行うリクエストに対応して動く |
8.ビュー
・ブラウザにレスポンスとして返す見た目を設定する
9.ERB
・テンプレートエンジンを呼ばれる仕組みを持った物
・テンプレートエンジンとは雛形となるテンプレートと、そのテンプレートにデータとなる記述を埋め込むことで、最終的に別のファイルとして生成できる仕組み
・ERBはHTMLにRubyの記述を埋め込むことができるテンプレートから、HTMLファイルを生成できるテンプレートエンジン
10.○○.thml.erbファイル(ビューファイル)
・RailsにおけるERBファイルは○○.html.erbという名前で作成する。○○には、対応するアクション名を記入する
11.Rubyコードの埋め込み
・<%= %>というタグでRubyのコードを囲うことで、そのコードの結果を埋め込みことができる
<%= @post %> # RubyコードをHTMLに埋め込む
・<% %>で囲うとインスタンス変数に定義した文字列は表示されなくなる
Ruby on Railsの基礎
1.フレームワーク
・最小のコストでWebアプリケーションの作成ができるような仕組み
・Webアプリケーション開発で、必要となる作業やリソースを事前に仮定し、用意してある便利な物
理念 |
内容 |
DRY(Don`t Repeat Yourself) |
同じコードを繰り返し書くことを避け、保守管理しやすい状態に保ちバグを減らす。 |
CoC(Convention Over Configuration) |
Ruby on Rails自体で規約を用意しているため、規約に則ったコードを書くことで記述量を少なくすることができ、スピーディーな開発が可能。 |
3.railsコマンド
・Railsに関する命令は全てrailsというコマンドから始まる
・railsコマンド
rails コマンド名
4.rails newコマンド
・Railsで新規アプリケーションを作成する際に使用
・アプリケーションを作成するための雛形が自動で生成される
・新規アプリケーションの作成
rails new アプリケーション名
※①使用するRailsのバージョンの指定、②オプション(コマンド実行後に後ろに続けて入力することで、コマンドの動作を変更、追加などができる)の指定をすること
5.-dオプション
・rails newコマンドにつけることができるオプション
・作成するアプリが利用するデータベースの管理システムを指定できる
rails new アプリケーション名 -d データベース管理システム名
6.rails db:createコマンド
・新しくデータベースを作成するコマンド
・データベースの作成
rails db:create
7.Sequel Pro(シークエル・プロ)
・データベースの中身をわかりやすく視覚化して表示するアプリケーション
8.rails sコマンド
・アプリケーションを動かすためのサーバーが起動する
・開発者のPCだけで動くサーバーをローカルサーバーと呼ぶ
9.MVC
・Railsで登場する、モデル、ビュー、コントローラーの総称
Webアプリケーションの基礎
1.Web
・インターネット上で画像や文章などを公開できる仕組み
2.Webアプリケーション
・ある目的のために作成されたプログラム
3.動的
・常に最新の情報を取得し表示する仕組みや、ユーザーごとで表示される物が変わるような仕組み
4.静的
・誰がいつみても常に同じ内容が表示されるような仕組み
5.HTTP通信
・Webアプリケーションを表示する際の、情報やデータなどを送受信するための通信方法
6.URL
・インターネットのサービスの場所を表す物
7.リクエスト
・データや情報を要求すること
8.レスポンス
・リクエストに対応するデータや情報を返却すること
9.クライアント
・Webアプリケーションなどのサービスを利用する側
①クライアントサイド
クライアントが利用する領域のことで、Webアプリケーションの見た目やそれを表示するブラウザなどをさす
10.サーバー
・画面のないPCのこと
・世界中のどこかに置いてあるサーバーの中にWebアプリケーションは保存されている
①サーバーサイド
・実際にWebアプリケーションが存在する領域
サーバー名 |
役割 |
Webサーバーを通して受け取ったリクエストを処理し、HTMLなどをウェブサーバーへ返却する役割 |
|
ウェブサーバー |
リクエストを処理し、レスポンスを返却する役割 |
データベースサーバー |
アプリケーションで使用するデータを管理する役割 |
11.データベース
・情報の集合体、すなわちデータの集まり
・データ自体の保存や検索を可能にし、それらを迅速に実行する役割がある
12.Sinatra
・最小の労力でRubyによるWebアプリケーションを作成できる仕組みを構築できるフレームワーク
13.requireメソッド
・Rubyのファイルで、Sinatraのような仕組み自体を読み込む際に使用する記述
14.ルーティング
・リクエストに対してどのような処理を実行するかという道筋を明記する仕組み
15.HTTPメソッド
・HTTP通信における処理の種類のこと
・HTTP通信とはWebアプリケーションを表示する際の、情報やデータなどを送受信するための通信方法
メソッド |
処理 |
GET |
取得する |
POST |
送信する、作成する |
PUT |
更新する、作成する |
DELETE |
削除する |
16.ローカルホスト(localhost)
・自分のPCという意味
クラスとインスタンス
1.クラス
・個別の値(データ)を作るための雛形であり、共通のルール(属性と処理/メソッド)を定義する
・設計図に例えることができる
・実体はない
・クラスの定義
class クラス名
# 変数やメソッドの定義
end
・クラス名は半角英大文字から始める
2.インスタンス
・クラスを元にして作られるデータ
・クラスと異なり実体を持つ
・インスタンスごとに属性の値やメソッドの結果が変わる
3.newメソッド
・クラスは定義しなくてもnewという特別なメソッドを初めから持っている
・使用したクラスのインスタンスを生成して返す
・newメソッド
変数名 = クラス名.new
4.インスタンスメソッド
・インスタンスが使用できるメソッド
・インスタンスメソッドを定義したクラスから生成されるインスタンスが使用できる
・インスタンスごとの個別の情報(属性値)を使った処理に使用する
・インスタンスメソッドの定義
class クラス名
def メソッド名
# 処理
end
end
・インスタンスメソッドの呼び出し
インスタンス名.メソッド名(引数)
3.属性と属性値
・属性はデータの性質となる情報のことで、それぞれに当てはまる値を属性値と呼ぶ
4.インスタンス変数
・インスタンス、すなわちデータが持つ属性を定義する変数
・クラス内のメソッドの中で、変数の始めに@をつけて定義する
・インスタンス変数の定義
class クラス名
def メソッド名
@変数名 = 値 # インスタンス変数
end
end
・インスタンスが個別に持つ属性値が入り、そのインスタンスの全ての動作に使用できる変数
5.クラスメソッド
・クラスが使用できるメソッド
・クラスメソッドを定義したクラス自身が使用できる
・クラスで共通の情報を使った処理に使用する
・クラスメソッドの定義
class クラス名
def self.メソッド名
# 処理
end
end
・メソッド名の前にselfを.で繋いで定義
・クラスメソッドの呼び出し
クラス名.メソッド名(引数)
|
クラスメソッド |
インスタンスメソッド |
概念の違い |
クラス全体で共通した振る舞いを表す |
クラスから生成されたインスタンスの振る舞いを表す |
使い方の違い |
定義するときはself.を頭につける クラスのみに用いることができる |
定義するときは何も頭につけない インスタンスのみに用いることができる |
|
ローカル変数 |
インスタンス変数 |
振る舞い |
記述してあるインスタンスメソッド内でしか使用できない |
別のインスタンスメソッド内でも使用できる |
書き方 |
何も頭につかない |
頭に@がつく |
6.initializeメソッド
・インスタンスが生成された瞬間に、生成されたそのインスタンスが実行する処理を定義するインスタンスメソッド
・initializeメソッドの定義と実行
class クラス名
def initialize
# インスタンス生成した時に実行される処理(以下は例)
puts "クラス名のインスタンスが生成されました"
end
end
インスタンス = クラス名.new
処理に名前をつける
1.メソッドの定義
・メソッドの定義
def メソッド名
# 実行する処理
end
2.戻り値
・メソッドから呼び出した場所に渡される値
・メソッドが処理された後の最終的な値
3.return文
・メソッド内でreturn ○○と記述すると、returnの後ろに続けた式がそのままメソッドの戻り値になる
4.スコープ
・定義した変数が使える範囲のこと
・メソッドの中ではその中で定義した変数だけが使える
5.引数
・引数によってメソッドは外にある変数(スコープ外の変数)の値をメソッドの中で扱うことができる
・実引数と仮引数
def メソッド名(仮引数)
# 処理
end
# メソッドの呼び出し
メソッド名(実引数)
・実引数と仮引数の数は必ず一致していなければならない
・スコープ範囲の違い
ー |
defで定義するメソッドのスコープ |
times,eachメソッドのスコープ |
メソッドの外で定義した変数 |
(引数を使わない限り)メソッドの中で使用できない |
メソッドの中で使用できる |
メソッドの中で定義した変数 |
メソッドの外で使用できない |
メソッドの外で使用できない |
繰り返し処理
1.繰り返し処理(ループ処理)
・同じ内容を繰り返し行う処理
2.timesメソッド
・数値が持つメソッドであり、その値の回数分だけ処理を繰り返します。
・timesメソッド
数値.times do
# 繰り返す処理
end
①ブロック変数
・ブロックの中に記述された変数
・メソッドの中だけで使用できる変数を||で囲うブロックを使うことができる。
・繰り返し処理が1回実行されるごとに0から1ずつ増加する値が代入される
・control + Cで強制終了できる
・timesメソッド
数値.times do |ブロック変数|
# 繰り返す処理(0から始まるブロック変数が使える)
end
3.eachメソッド
・配列が持つメソッド
・要素一つ一つに対して繰り返し処理ができる
・eachメソッド
配列.each do |item|
# 処理
end