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
- ブロックの戻り値ごとにグループ化する。ブロックの戻り値をキーとし、その戻り値を生成した要素の配列をバリューとするハッシュを返す。
- 最初名前的にActiveRecordかとおもったけど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つ目の知らんかった。"( )"で括ることで多重代入であることを明示できるのか。