繁体   English   中英

rails geocoder gem查找具有匹配地址的用户

[英]rails geocoder gem find users that have matching address

我在我的Rails应用程序中使用了Geocoder gem,它为每个用户地址提取了经度和纬度。 用户的每个个人资料都有一个地址(以及以后的地址)。 该配置文件当前具有一个地址,该地址属于该配置文件。

我想做的就是搜索区域,所以我正在使用near()函数,当我想搜索Address模型时,该函数在控制器上工作正常。 它给我返回一个@实例,可以在视图中使用它,并循环遍历结果以提取address.profile.suburb或.name等形成每个地址结果。 但这是在视图中完成的。

我想做的是有一个@users实例,因为我想做的下一件事是由其他模型过滤-我有一个Style模型,如果他们检查了过滤器Style-任何具有Style AND的用户的地址都接近()将返回到@user实例,然后可以在视图中使用它。

不确定如何执行此操作,我尝试的所有方法均不起作用-我认为这将类似于User.all.profiles.address.near(params [:search])

但然后我还需要按样式过滤,该样式在未连接到地址(是用户模型)的表中

或类似的东西...

帮助赞赏。

您提供的上下文非常模糊。 是样式表本身还是用户表中的列? 样式和用户之间有什么关联? (has_many,has_one,...)

想法是将其分解为多个步骤。 假设用户具有has_one样式,并且params[:style]是预期样式的ID。

您可以执行以下操作:

@users = User.all.profiles.address.near(params[:search])
@users.joins(:style).where('styles.id = ?', params[:style])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM