簡體   English   中英

Rails Active Record省略where子句

[英]Rails Active Record Omitting Where Clause

我有一個位於寶石內的Active Record查詢。 使用的數據庫是postgres。

Client.where(date:@date,client:@business_id)

gem使用get請求提取此數據。 如果@business_id@business_id ,則URI太長。 寶石沒有發布請求。

解決方法:

業務問題是所有@business_id都傳遞給應用程序。 我可以有一個“全部”按鈕,該按鈕觸發所有client值顯示。 我將需要忽略查詢的client:@business_id部分。

如何構造查詢,以便在需要傳遞所有@business_id ,它忽略查詢的client:@business_id部分?

鏈接where子句,然后有條件地包括或排除@business_id部分:

relation = Client.where(date:@date)
if your_conditional_is_true
  relation = relation.where(client:@business_id)
end
the_clients = relation.all 

這樣做的原因是實際返回ActiveRelation的地方,而不是執行SQL的結果。 除非您對關系的結果進行某些處理,否則不會構建和執行SQL。

暫無
暫無

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

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