Subscribed unsubscribe Subscribe Subscribe

Arrayの展開ヘ(^o^)ノ

Rails4からpluckが複数カラムに対応しましたねー

こんな感じで、特定カラムの値が配列で取得できます。

Post.pluck(:title, :description)
 # => [["Murajun's Style", "Arrayの展開ヘ(^o^)ノ"]]

とっても便利ですよねー

んじゃ、カラムを動的に取得したいですよね?(したいよね?w

こんなメソッドを作りましたー

def columns_value(*columns)
  Post.pluck(columns)
end

でも、このメソッドは怒られます。

pluckの引数columnsがArrayだからです。

つまりはこういう状態。。。

Post.pluck([:title, :description])

そこでArrayの展開ヘ(^o^)ノ

def columns_value(*columns)
  Post.pluck(*columns)
end

ポイントはpluckの引数のまえにある*(アスタリスク)

これでArrayが展開されます。

columns_value(:title, :description)
 # => [["Murajun's Style", "Arrayの展開ヘ(^o^)ノ"]]

できましたねー

ActiveSupport::Concernを使えば、Modelも動的にできますよねー

Happy Hacking٩( ‘ω’ )و