Postクラスがあり、Where句を使って複数Postを検索するとそのオブジェクト型はPost型に入っています。

@posts.where(state: 'published')

pry> @posts
=> [#<Post id: 12, name: "1st post" state: "published", user_id: 4, created_at: "2015-06-05 08:03:09", updated_at: "2015-06-05 12:41:53">,
 #<Post id: 23, name: "14th post" state: "published", user_id: 3, created_at: "2015-06-15 18:30:08", updated_at: "2015-06-15 18:30:08">]

pry> @posts.class
=> Post::ActiveRecord_Relation

この状態だと、Postクラスに指定したメソッドが使えます。

ところが、あるインスタンス変数(@instance)でそれは配列の中にPost型が入っている状態で得られます。

pry> @instance
=> [#<Post id: 12, name: "1st post" state: "published", user_id: 4, created_at: "2015-06-05 08:03:09", updated_at: "2015-06-05 12:41:53">,
#<Post id: 23, name: "14th post" state: "published", user_id: 3, created_at: "2015-06-15 18:30:08", updated_at: "2015-06-15 18:30:08">]

pry> @instance.class
=> Array

この型だと当然ながらPostクラスに指定したメソッドが使えません。
NoMethodError - undefined method 'search' for #<Array:
ではじかれます。
解決するには配列の型をPost型に変換するべきと思うのですが、どうすればいいのでしょうか?