はじめに
railsで作業してて、以下のように配列をmapして別のメソッドに通した値を使いたいケースがありました
localized_column_names = Product.column_names.map { |column_name|
Product.human_attribute_name(column_name)
}
こんな場合javascriptなら関数を渡せて簡潔なのにな、と思ったのです。
以下のように
const localizedColumnNames = Product.columnNames.map(Product.humanAttributeName);
rubyでやる場合はMethodオブジェクトで代用
メソッドをMethodオブジェクトで渡せば可能なようです
localized_column_names = Product.column_names.map(&Product.method(:human_attribute_name))
オブジェクトを do...end
のブロックのように解釈させるには頭に &
を付けて引数として与えればOKです。
こうすると内部的に #to_proc
が呼ばれるのかな?
まぁまぁ簡潔になりましたね