私の Rails アプリでは、データベース内の一連のレコードから一意の名前の配列を生成するメソッドを作成しました。
class Book < ActiveRecord::Base
attr_accessible :title, :author
def self.all_authors
self.uniq.pluck(:author)
end
end
このメソッドは期待どおりに機能しますが、このアプリケーションには多数の作成者が含まれる可能性があるため、コントローラーでこのクエリをページ分割したいと考えています。
class AuthorsController < ApplicationController
def index
@authors = Book.all_authors.limit(10).offset(params[:page]*10)
end
end
pluck(:authors)
. ではなく配列を返すため、明らかにこれは機能しませんActiveRecord::Relation
。pluck
Arel メソッド呼び出しチェーンを使用できるようにする代替手段はありますか? ActiveRecord::Relation
あるいは、配列の代わりにpluck を返すようにする方法はありますか?