gpt4 book ai didi

ruby-on-rails - 在 Rails 应用程序中将模型搜索逻辑放在哪里?

转载 作者:行者123 更新时间:2023-12-04 06:28:51 25 4
gpt4 key购买 nike

我试图找出在 Rails 应用程序中放置多属性搜索表单逻辑的“最佳”位置。有问题的搜索表单有几个可能有值也可能没有值的属性,并且属性之间的数据类型不同。 (例如,有搜索选项可以搜索价格属性介于两个数字、日期范围、字符串值等之间的项目。)此外,有问题的模型通过 has_a/has_many 关系具有多个嵌套属性,其中一些属性也需要可搜索。

厚模型、薄 Controller 的 Rails 口头禅让我犹豫是否尝试将搜索逻辑聚合到 Controller 中。但是,将与构建搜索条件相关的逻辑放入模型中似乎也不合适。最后,本着 DRY 的精神,我不愿将一堆特定属性名称硬编码到某个模块中,因为我需要将类似的搜索逻辑应用于几个不相关的模型。也许可以使用搜索 View 中表单字段的命名约定来构建正确的条件? (类似于使用“min_”、“max_”、“startdate_”等前缀表示数据类型和搜索条件运算符,后缀是模型和/或属性的名称?)

我已经搜索过这方面的建议,但大多数建议似乎不灵活(硬编码的属性名称,不支持嵌套属性)或使用基于路由的搜索,我认为这不会满足我的需要(其中 5-10参数可以立即用于搜索)。

关于这样做的“Rails方式”有什么建议吗?

最佳答案

如果您使用的是 2.3.x,我总是找到 Searchlogic成为搜索不需要全文搜索的 ActiveRecord 模型的可靠和灵活的起点。它支持关联、您自己的命名范围等。

如果您使用的是 Rails 3,meta_search gem 似乎提供了类似的功能,但我对它的经验非常有限。

关于ruby-on-rails - 在 Rails 应用程序中将模型搜索逻辑放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com