在我的Rails应用程序,我写的是从一组记录在数据库中生成唯一的名称数组的方法:等效pluck`的`返回一个关系
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
而不是数组的方式?
看起来。看起来像从作者那里得到这些,加入Book可能会更有意义。 –
@JesseWolgamott根据当前代码,它看起来像'Book'有一个名为'authors'的列(不是关联)。也许OP可以澄清。 –
你是对的;目前设置'author'的方式只是一个文本列。这可能会在未来发生变化,但现在事情就是这样。 – Ajedi32