用户提交搜索employers
的搜索查询。我想首先使用scope
来过滤employers
表中的记录,然后我想对从activerecord::relation
返回的scope
对象运行ransack查询。
特别是按顺序。重要的是首先运行scope
,因为它只返回选择数量的记录,然后可以进一步过滤掉ransack查询。在我的情况下,首先运行ransack查询然后在返回上运行scope
查询运行速度非常慢,因为ransack查询可能会返回许多记录。
这听起来像将查询链接在一起的工作。我知道如何将常规范围链接在一起:
# example
# `active`, `from_department_stores`, and `small_company` are all scopes
@employers = Employer.active.from_department_stores.small_company
但我不知道如何将ransack查询链接到作用域,并以首先运行作用域的方式进行。
代码:
@q = Employer.ransack(params[:q])
# Pretty sure this will not work, but hopefully it provides a good idea
# of what I am trying to do
@employers = Employer.active.@q.result
答案 0 :(得分:4)
这对你有用。谢谢
@employers = Employer.active.ransack(params[:q]).result