sliceの引数に*をつける意味は?

環境

Rails 5.2

内容

モデルの中で、CSVファイルを1件づつ読み込み、userテーブルに更新する処理を行っています。下記のロジックは正常に動作していますが、文法で分からない個所があります。

updatable_attributesメソッドを読み込む時、先頭にアスタリスクを付けていますが、アスタリスクを付ける意味合いは何なのでしょうか。

class Test01 < ApplicationRecord CSV.foreach(file.path, headers: true) do |row| user = new user.attributes = row.to_hash.slice(*updatable_attributes) user.save end def self.updatable_attributes ["id", "name", "age"] end end

このように書き換えると、上手く動かなくなります。その理由が分かりかねます。

user.attributes = row.to_hash.slice(["id", "name", "age"])

コメントを投稿

0 コメント