PHPer目線のRailsチュートリアル学習メモ#1
雑に書き残す。
下記、コードはRailsチュートリアルから引用
自分のバックグラウンド
プログラミング歴約1年、フレームワーク歴はCakePHP半年ほど
Rubyはすべてオブジェクト
って書いてあるけどメソッドは違うらしい。
言語の歴史的経緯として下記の違いがある。
- Rubyは端から純粋なオブジェクト指向を目指して作られている
- PHPは後からオブジェクト指向に対応
記述を短縮できるところはガンガンやっていき
4.3.2 ブロック
https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.1#sec-blocks
symbol-to-proc記法
>> %w[A B C].map { |char| char.downcase } => ["a", "b", "c"] >> %w[A B C].map(&:downcase) => ["a", "b", "c"]
4.3.3 ハッシュとシンボル
https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.1#sec-hashes_and_symbols
- ハッシュはPHPでいうと連想配列のこと
- ハッシュのキーを次のような形式でかける(シンボルという)
- Rubyではハッシュのキーは文字列よりシンボルを使うのが一般的
例えばuserというハッシュを作る場合、
これが
user = { "name" => "Taro Yamada", "email" => "aaa@aaa.com" }
こうなって、
user = { :name => "Taro Yamada", :email => "aaa@aaa.com" }
こうなる。
user = { name: "Taro Yamada", email: "aaa@aaa.com" }
4.4.5 ユーザークラス
https://railstutorial.jp/chapters/rails_flavored_ruby?version=5.1#sec-a_user_class
attr_accessorでシンボル指定しおくと、自動でgetter/setterが定義される。
各々定義したい場合はattr_reader/attr_writerを使う
- attr_reader -> getterを定義
- attr_writer -> setterを定義
class User attr_accessor :name, :email def initialize(attributes = {}) @name = attributes[:name] @email = attributes[:email] end def formatted_email "#{@name} <#{@email}>" end end