我將實作一個標簽系統,它可以關聯到一個模型(例如,我將呼叫 Car)作為一對多關聯。
該專案使用 Rails 6.0 和 ruby?? 2.7
所以一輛車有很多標簽。
這個標簽系統的最終目的是能夠使用這些標簽過濾出帶有邏輯運算式的汽車。例如,您可以在輸入中輸入以下內容:
((紅色||藍色)&&跑車)|| !SUV
除此之外,我想生成一個 activerecord 查詢選擇:
- 所有帶有(紅色 或 藍色)標簽和sportcart標簽的汽車
- 或所有未標記suv標簽的汽車
基本上,這需要在考慮括號的情況下決議邏輯運算式,然后根據該運算式的決議結果生成查詢。
我想知道實作它的最佳解決方案是什么。我猜想決議這樣的運算式會產生一棵樹,然后我需要再次決議那棵樹并從中生成我的查詢。
但也許有一個更好的解決方案我在這里沒有看到,所以如果有人對如何以適當的方式做到這一點有意見,我會全神貫注!
uj5u.com熱心網友回復:
我剛剛偶然發現了Ransack Gem,它基本上可以滿足我的需求。
唯一的問題是它沒有被決議為邏輯運算式,而是查詢是由嵌套形式構成的。(請參閱他們的高級演示以進行嘗試)
希望這可以幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/512191.html
標籤:轨道上的红宝石解析活动记录逻辑运算符ruby-on-rails-6
下一篇:一個空的正則運算式如何計算?
