Railsチュートリアルの続きです。前回は第3章で静的なページを作りました。今回は第4章、Rails風味のRuby。Rails風味とはどんな意味なのか。今回はRailsというよりはRubyがメインになりそう。それではいきましょう!
【目次】
Ruby/Ruby on Railsを習得するためにやったこと まとめ qiita.com
Railsコンソール出力
puts
は自動的に改行\n
が付くprint
の出力は改行がない- 文字列の中に式展開
#{ }
を埋め込むことができる - Rubyの文字列はダブルクォート、シングルクォート両方使えるが、シングルクォートは式展開が使えない(逆に言えばシングルクォートは特殊文字もそのまま出力できる)
オブジェクト
- Rubyではあらゆるものがオブジェクト
- 文字列に
length
メソッドを繋げると文字数を返す empty?
のように末尾に疑問符?
をつけると論理値true
、false
を返す(if文の条件などに使える)- 論理値はAND
&&
、OR||
、NOT!
などもある - Rubyでは空
nill
もオブジェクト - オブジェクトに複数のメソッドを繋げて実行することもできる(メソッドチェーン)
- Rubyには暗黙の戻り値を返す機能があるが、
return
を付けて明確に返すこともできる(見た目がわかりやすくなる)
配列
split
メソッドで文字列を配列に分割できるsplit
メソッドは初期状態ではスペースが区切られるsplit
メソッドに引数を入れるとその文字列で区切られる- 配列のカウントは0から始まる(ゼロオリジン)
- マイナスをつけると後ろから数える
- 配列に
sort
などのメソッドをつけると実行後の結果が返されるが、元の配列に影響はない - 変更したい場合は破壊的メソッドにする(メソッドの末尾に
!
をつける) push
メソッドまたは<<
で値を追加できるjoin
メソッドで配列を結合した文字列にできるjoin
メソッドに引数を入れると区切り文字を挿入できる..
で範囲指定ができる(0..9)
、[0..9]
などto_a
メソッドを付けると配列に変換できるeach
メソッドやmap
メソッドとブロック{ }
で繰り返し処理ができる(ブロックの中の| |
は変数)do
〜end
もブロック
ハッシュとシンボル
- ハッシュはJSでいうオブジェクト(連想配列)みたいなもの
- ブロック
{ }
の中でキーと値の区切りはアロー=>
- キー名は文字列でダブルクォートで囲う(json形式に似ている)
- ハッシュのキーはRubyでは文字列よりシンボルを使うのが一般的
- シンボルは頭にコロン
:
を付ける - キー名の後ろにコロン
:
を付けるとアロー=>
を省略できる(JSのオブジェクトに似ている) inspect
メソッドで配列やハッシュの中身を表示することができる
CSS
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
stylesheet_link_tag
はCSSのリンクタグを生成する- Rubyのメソッドは丸カッコ
( )
を省略できる - ハッシュが引数の最後の場合波カッコ
{ }
を省略できる - Rubyのコードは改行と空白を区別しない
- 一つ目の引数はCSSのパス、二つ目の引数はTurboの設定
- ERBの中でcssをリンクしたlinkタグに変換される
- cssファイルの名前は16進数の長い名前に変換されている(Rails側で実行されている)
※参考:stylesheet_link_tag | Railsドキュメント
※参考:Turbo: The speed of a single-page web application without having to write any JavaScript.
クラスのコンストラクタ
- オブジェクトの中でメソッドにまとめたいものをクラスを使う
- インスタンスを生成するとクラスも自動的に生成されている(省略されている=リテラル)
- インスタンスオブジェクトに
.class
メソッドを付けるとstring
クラスなどクラスの種類がわかる new
メソッドで省略せずにクラスを生成することもできる(=コンストラクタ)- 文字列コンストラクタ
String.new
、配列コンストラクタArray.new
、ハッシュコンストラクタHash.new
- ハッシュコンストラクタに引数がない場合は
nill
、引数あるとその値が初期値になる - クラスメソッドはクラスが直接呼び出すメソッド(
.
で繋ぐ) - インスタンスメソッドはインスタンスが呼び出すメソッド(
.
や#
で繋ぐ)
クラスの継承
- クラスの継承元の親クラスを
superclass
、継承先の子クラスをsubclass
という superclass
メソッドで親クラスを調べられる(連続で繋ぐと先祖を辿れる)- クラスを定義するとき、クラス名のあとに
< 親クラス名
で親クラスが継承される(親クラスのメソッドも継承される) self
はオブジェクト自身を表す- Rubyは組み込みクラスも変更できるが、正当な理由がない限りは変更しない方がいい
ユーザークラス
- Userクラスを作成する
- アクセサー(accessor) を作成
name:
など:
をつける - それによって
@name
など@
がついたインスタンス変数にアクセスできる initialize
はUser.new
実行時に自動的に実行されるメソッド- Railsコンソールで
require
でファイルを読み込む - User.newを実行、メソッドを実行できる
- マスアサインメント:User.new実行時に引数にハッシュを入れて実行する
終わりに
4章はRailsコンソールでメソッドを実行したりクラスを作成したりして、Ruby本体の理解を深めるような内容でした。5章はBootstrapを使ってCSSスタイルを追加していく内容になるようです。
なお、今回からよりコーディングや学習の方にリソースを割いていくため、ブログは箇条書きメモ方式にしていこうと思います。
それではまた!
Ruby/Ruby on Railsを習得するためにやったこと まとめ qiita.com