tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

【ruby】&:メソッド名の技法

&(アンパサンド)に対してシンボルオブジェクトを渡している。(&はブロックをProcオブジェクトに変換する)
シンボルオブジェクトをprocオブジェクトに変換してメソッドとして呼ぶ実装がされている。

x = [1,2,3,4]
x.map(&:to_i)
#=> ["1","2","3","4"]

参考 https://melborne.github.io/2014/04/28/proc-is-the-path-to-understand-ruby/

【rails】composed_of

値オブジェクト(データベースに紐づかない、一意性のないオブジェクト)の属性値(attr_accessorで定義した属性)とデータベースに紐づくActiveRecordのオブジェクトの属性値(カラム)をマッピングする。 参考 https://qiita.com/okuramasafumi/items/16bcda8f6382a3db47c9

【Ruby】select reject

selectは各要素をブロックで評価し、trueになる要素を抽出する。
rejectはfalseになる要素を抽出する。

array = [ 1, 2, 3, 4, 5 ]
selected = array.select { |i| i  > 3 }
p selected 
#=> [ 4, 5 ]

array = [ 1, 2, 3, 4, 5 ]
rejected = array.reject { |i| i  > 3 }
p rejected 
#=> [ 1, 2, 3 ]