簡體   English   中英

如何使用ransack查詢鏈接作用域

[英]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

Ransack文檔

這將為您工作。

@employers = Employer.active.ransack(params[:q]).result

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM