【问题标题】:Rails search with where and geocode near at the same timeRails同时搜索位置和附近的地理编码
【发布时间】:2012-10-26 13:56:35
【问题描述】:

有没有一种方法可以同时搜索 where 条件和 near 条件,显示两者的结果。基本上,我想要一个搜索栏,用户可以在其中输入一个人的姓名,但他们也可以输入一个位置,搜索将显示匹配两者的结果。我尝试了 where 查询,然后是一个单独的 near 查询,并遍历地理编码结果并将它们添加到主要结果中,但这会产生重复并且不太理想。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby search where geocode


    【解决方案1】:

    您使用的是哪种地理编码 gem?我的猜测是,您可以设置 query.where 来设置 near 选择器生成的等效选项,而不是执行 query.where.near

    这是一个不同的问题,理论上与您所问的问题正交...但是您的控制器是否在将查询传递到 ActiveRecord 之前做出任何决定?例如,如果用户输入New York, NY,您的控制器是否“猜测”它是一个位置?还是只是尝试进行名称匹配搜索和地理编码尝试,无论输入是什么?我问这个是因为如果你解析输入,你可能会遇到 if/else 情况,if query is a location, do a geocodeelse do a search by name

    我想知道在访问数据库之前有一个不区分人名和地点名称的搜索框是否明智的设计,但也许你有一个创造性的用例。

    【讨论】:

    • 你说得很好。我正在使用我正在研究的geocoder gemthis is the site。在传递到 ActiveRecord 之前确定查询是否是一个位置的问题是,如果用户搜索一所大学,他们可能会输入马里兰州,该名称与“马里兰大学”的名称匹配,但也是一个位置。如果确定马里兰州是一个位置,则根据距离可能找不到马里兰大学。
    • 啊...那么也许您想打破搜索功能,以便输入部分名称会为大学提供自动完成功能。例如,以“Uni...”或“Maryl...”开头的选项会出现“马里兰大学”等选项。否则,我想你必须评估一个全方位搜索框是否真的增加了更多的灵活性,因为你必须添加额外的逻辑(和可能的数据库命中)。
    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2013-07-30
    • 2019-01-09
    • 1970-01-01
    相关资源
    最近更新 更多