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