我試圖在rails中公開一個搜索功能。我希望用戶能夠輸入字符串像name:"john" color:"blue"
並獲得ActiveRecord對象名單對一些模型有一個包含john
名稱屬性和包含blue
顏色屬性。我也希望他們能夠使用and
和or
和括號例如name:"john" or color:"blue"
或(name:"john" color:"blue") or name:"bill"
。理想情況下,他們也可以使用諸如age<20
之類的地方,其中年齡是數字字段。有沒有一個軌道插件可以做到這一點。我在獅身人面像簡要尋找深挖這兩者似乎爲此創造了一個API,但他們是否提供了明確的基於文本的選擇,目前還不清楚,或者如果我需要解析搜索字符串自己。如何使用戶可以搜索導軌模型?
1
A
回答
2
你將不得不您提交的表單和洗劫代碼(這將是一個好主意,反正出於安全原因)將字符串從你渴望的東西洗劫可以理解的格式轉換之間提供了一箇中間層。
如果您檢查demo page和創業板的文檔,你會發現它很簡單,創建這種查詢你之後。
觀看GET
請求是如何根據您構建的條件生成的,並在您的應用程序中替換Ernie在演示中使用單個文本字段接受字符串如(name:"john" color:"blue") or name:"bill"
的構建器。提交此字段時進行一些模式匹配,並構建適當的查詢字符串以傳遞到Ransack gem。
編輯
對於喜歡 「什麼是對______
流行的寶石?」,檢查出The Ruby Toolbox未來的問題。如果Ransack不適合您的需求,那麼Rails Search類別中的寶石可能就是您想要的。我個人使用Ransack爲,正好是你所描述的;爲我的應用程序的User
模型提供自定義查詢界面。
0
我建議做自己的搜索類別。我發現,對於每個應用程序我做的,搜索的需求相當大的變化,它是很簡單的創建考慮在搜索查詢所有你可能需要的變量搜索應用程序,造成對任何數量的您要搜索類。
在你的搜索類,有它返回一個集合,在你想要的順序,並收集可以由該搜索者可能希望對象實例。
相關問題
- 1. 導軌 - 搜索商品在模型
- 2. 導軌搜索
- 3. 如何使用導軌擴展模型?
- 4. 使用模型的導軌
- 5. 如何使所有模型類都可以使用通用搜索代碼?
- 6. 使用find在導軌中搜索
- 7. 使用2 select_tag進行導軌搜索
- 8. 用戶的導軌模型結構
- 9. 搜索相關模型軌道3
- 10. 在ReSTful導軌模型中的搜索動作
- 11. 在模型導軌中搜索多列3
- 12. 設置搜索模式以環繞用戶模型
- 13. 導軌 - 高級搜索
- 14. 在導軌中搜索
- 15. 搜索多列 - 導軌
- 16. 以用戶爲導向的搜索?
- 17. 導軌 - 遞歸用戶模型關係模型關聯
- 18. 在用戶模型中搜索rails
- 19. 使用導軌形式修改用戶模型
- 20. 導軌 - 從模型
- 21. 以用戶類型自動搜索
- 22. 使用導軌創建模型
- 23. 使用模型的導軌路由
- 24. 使用導軌從模型中檢索表格
- 25. 多模式搜索軌
- 26. 如何計算導軌模型列
- 27. 如何從模型導軌中保存
- 28. 我如何可以調用從模型類方法軌
- 29. 創建導軌模型,或不創建導軌模型
- 30. 是否可以導出Azure搜索索引模式?