某Webアプリ、スマホアプリ開発の企業に勤めているエンジニアの日記です。主に、技術系記事や本の要約を発信します。

ransackで#Array:〜〜のエラー

問題

配列処理したいが、以下のエラーが発生する。

#[Array:0x00007f55f06941f8](array:0x00007f55f06941f8)

原因

Arrayクラスになっているのが原因

ransackではActiveRecord_Relationクラスにする必要がある。

解決策

where、mapをつかい、Array→ActiveRecord_Relationクラスに変換する

.where(id: items.map{ |item| [item.id](http://item.id/) })

参考サイト

配列をActiveRecord::Relationで再取得するメソッドを作ってみる - Qiita