2019-05-10
Ruby, Railsもろもろ
.
Rails, String#classify でテーブル名の表記からクラス名の表記に変換できる。
Rails, String#constantize で文字列を同じ名前の定数に変換できる。
- クラスやモジュールも定数の一種なので constantize で取得できる。(Ruby の言語仕様知らなさ過ぎる…。)
> HOGE = 100
> "HOGE".class # => String
> "HOGE".constantize # => 100
> "HOGE".constantize.class # => Fixnum
> class Fuga ; end
> "Fuga".constantize # => Fuga
> "Fuga".constantize.class # => Class
> module Piyo ;end
> "Piyo".constantize # => Piyo
> "Piyo".constantize.class # => Module
- Ruby で Enumerable#group_by ってのがある。
- https://ref.xaio.jp/ruby/classes/enumerable/group_by
- ブロックの戻り値ごとにグループ化する。ブロックの戻り値をキーとし、その戻り値を生成した要素の配列をバリューとするハッシュを返す。
- 最初名前的に Ruby だった。
- 多重代入について
a,b,c = [1,2,3]
p a,b,c # => 1,2,3
a,b,c,d = [1,2,3],4
p a,b,c,d # => [1,2,3],4,nil,nil
a,b,c,d = *[1,2,3],4
p a,b,c,d # => 1,2,3,4
(a,b,c),d = [1,2,3],4
p a,b,c,d # => 1,2,3,4
4 つ目の知らんかった。”( )“で括ることで多重代入であることを明示できるのか。