Baby steps to migratory bird

元半導体系エンジニア、今Webエンジニアの雑記

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

bryankawa.hatenablog.com