[英]How to chain scopes with ransack queries
用戶提交搜索請求以尋找employers
。 我想首先使用一個scope
來過濾employers
表中的記錄,然后我要對該scope
返回的activerecord::relation
對象運行搜索查詢。
具體按該順序。 首先,必須先運行scope
因為scope
僅返回選擇的記錄數,這些搜索記錄可以隨后進一步過濾下來,這一點很重要。 在我的情況下,首先運行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
這將為您工作。
@employers = Employer.active.ransack(params[:q]).result
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.