Ruby on rails Rails模型中的邻近位置
我有一个称为Location的模型,它基本上是一个城市(或大城市中的郊区) 每个地方都有一个相邻地方的简短列表-这有助于搜索 我在这里读过几十篇关于自我参照的帖子,很多是通过联想等,但我还是很难弄清楚这一点 基本上,我想要的是:Ruby on rails Rails模型中的邻近位置,ruby-on-rails,ruby,location,associations,Ruby On Rails,Ruby,Location,Associations,我有一个称为Location的模型,它基本上是一个城市(或大城市中的郊区) 每个地方都有一个相邻地方的简短列表-这有助于搜索 我在这里读过几十篇关于自我参照的帖子,很多是通过联想等,但我还是很难弄清楚这一点 基本上,我想要的是: l = Locality.find(1) n = l.nearby_localities # n should now hold a list of Locality ids 最好的方法是什么?您如何确定附近的位置 实际上,你可以用一个简单的方法 class Loca
l = Locality.find(1)
n = l.nearby_localities
# n should now hold a list of Locality ids
最好的方法是什么?您如何确定附近的位置 实际上,你可以用一个简单的方法
class Localities < ActiveRecord::Base
# Previous Code ...
def nearby_localities
# Implementation here.
end
end
类位置
保持简单
邻近的_localities
是一个静态的、经过精心编译的本地ID列表。考虑到您的答案,以及我对Ruby/Rails的新认识,我的直觉是在一列中保存一个逗号分隔的ID列表,然后使用该方法检索并将其解析为一个其他位置的数组。听起来合理吗?@CalebFidecaro:你想查询附近的位置吗?如果是这样,用逗号分隔的列表是个坏主意。您最好将位置之间的关系存储在一个单独的数据库表中。是的,这样就行了。可以将本地ID序列化为数组。请记住,列的类型应为text
。有关更多信息,请查看:@Mischanearear\u localities
字段包含一个位置ID数组-这些ID在任何方面都不是动态的,它们实际上是一个手工构建的位置列表,根据本地知识,这些位置可以被视为“附近”。例如,一个地方可能在地理位置上与另一个地方很近,但却在港口对面,这使得它不是我想要的“附近”。@BenjaminTan非常感谢这一点-这比我设计的解决方案要简单得多。本文解释了如何实现自参考多对多: