Ruby on Rails

【Ruby on Rails】チュートリアル 「第4章 Rails風味のRuby」をやってみた

Ruby on Rails Tutorialの第4章のメモです。第4章では、プログラミング言語Rubyの基本的な部分を学びます!

Railsチュートリアル第4章をやってみた

Railsのカスタムヘルパー

app/helpers/application_helper.rbに書く

Rubyの基礎

コメント

Rubyのコメントは、ハッシュマーク#から始まり行の終わりまで

文字列

ダブルクォートで囲むと文字列リテラル
+で連結できる

式展開 (interpolation)

これは、phpにはない機能

first_name + " " + last_name
"#{first_name} #{last_name}"    # 式展開を使った結合 (上と等価)

空白を" "のように直接加えるのはぎごちない

文字列の出力

puts関数(ぷっとえすかんすう)が使われる
putの三人称単数現在形ではなく「put string」なので、「put ess」と発音
返り値はnil
nilは「何もない」ことを表す
putsは最後に\nを追加して出力
文字列はシングルクォートでもOKだが、式展開ができない

オブジェクト

Rubyではあらゆるものがオブジェクト
オブジェクトに定義された関数をメソッドという

論理演算

empty?メソッド

Rubyではメソッドがtrue or falseの論理値(boolean)を返すことを末尾の疑問符で示す慣習がある

「and」、「or」、「not」

それぞれ、&&, ||, !

Rubyの関数には「暗黙の戻り値」がある

関数内で最後に評価された式の値が自動的に返される
returnで明示的に指定することもできる

Rubyの配列

配列(array)は、特定の順序を持つ要素のリスト

配列の追加

a.push(6)
a<<7
a<<"foo"<<"bar"

Rubyでは異なる型が配列の中で共存できる

範囲(range)

0..9
(0..9).to_a     # 配列に変換

ブロック

わかりにくいから例をメモ

>> (1..5).each { |i| puts 2 * i }

範囲オブジェクト(1..5)に対してeachメソッドを呼び出し
eachメソッドの右側の{ }に囲まれている部分がブロック
| |に囲まれているのがブロック変数に対して使用するRubyの構文で、ブロックを操作するとに使用する変数を指定している
ブロックであることを示すには{}で囲む以外に、doendで囲んで示すこともできる
do..end記法を使うのがRubyの慣習

mapメソッドとブロックの組み合わせ

mapメソッドは、与えら得れたブロックを配列や範囲オブジェクトの各要素に適用する

(1..5).map {|i| i ** 2}

ハッシュ

本質的には配列と同じだが、インデックスとして整数値以外のものを使用できる

user = { "first_name" => "Ziro", "last_name" => "Yamanda" }

ハッシュの最初と最後に空白を追加する
Railsのハッシュキーでは文字列よりもシンボルの方が広く使われる
シンボルとは、Ruby以外ではごく一部の言語にしか採用されていない特殊なデータ形式
以下のような書き方ができるように

>> h1 = { :name => "", :email => "ziro@example.com" }
>> h2 = { name: "Ziro Yamda", email: "ziro@example.com" }

ハッシュとeachメソッド

flash = { success: "It worked!", danger: "It failed." }
=> {:success=>"It worked!", :danger=>"It failed."}
>> flash.each do |key, value|
?>   puts "Key #{key.inspect} has value #{value.inspect}"
>> end

Ruby on Rails チュートリアル「第4章 Rails風味のRuby」のまとめ

  • Rubyは文字列を扱うためのメソッドをたくさん持っている
  • Rubyの世界では、すべてがオブジェクトである
  • Rubyではdefというキーワードを使ってメソッドを定義
  • Rubyではclassというキーワードを使ってクラスを定義
  • Railsのビューでは静的なHTMLと埋め込みRuBy(ERB)が使える
  • Rubyの組み込みクラスには配列、範囲、ハッシュなどがある
  • Rubyのブロックは柔軟な機能で、添字を使ったデータ構造よりも自然にイテレーションできる(ここ要勉強!)
  • シンボルとはラベル。追加的な構造を持たいない文字列みたいなもの
  • Rubyはオブジェクトを継承できる
  • Rubyでは組み込みクラスですら内部を見たり修正できる
  • 「"deified"」という単語は回文である??

第4章はRubyについてがほとんど
Railsのお話とRubyのお話が混ざっていてちょっとわかりにくかった
Rubyの詳細は別に書籍を購入して勉強した方が良さそう
なので、飛ばし飛ばし読んでしまった
第4章にかかった時間は1時間ほど
Ruby on Rails チュートリアル 第4章までかかった合計時間は5時間

次の記事はこちら!
Ruby on Rails チュートリアル 「第5章 レイアウトを作成する」をやってみた

Ruby on Railsのおすすめ書籍はこちら!


-Ruby on Rails